# WP Ministry > WordPress guides, error fixes and tools, and a team that does the work for a fixed price. The full list of pages is in the sitemap: https://wpministry.co/sitemap.xml ## Guides - [WordPress uptime monitoring: what a check sees and what it misses](https://wpministry.co/blog/wordpress-uptime-monitoring/): An uptime monitor is a service outside your server that asks for your site every few minutes and alerts someone when it gets a server error or no answer. Have it send a GET request, look for words on the page, and ask for one address no cache keeps. - [Wix site not showing up on Google: what to check, in order](https://wpministry.co/blog/wix-site-not-on-google/): Search Google for site: and your address first. If nothing comes back, the site is new, not published, or keeping Google out, through the "Let search engines index your site" setting, a page set not to be indexed, a password, or a robots.txt rule. Check them in that order. - [Webflow site not showing up on Google: what to check, in order](https://wpministry.co/blog/webflow-site-not-on-google/): Search Google for site:yourdomain.com first. If nothing comes back, the site is new, is published only to its webflow.io address, or is keeping Google out through a robots.txt rule, the "Sitemap indexing" toggle, a wrong canonical address or a password. Check them in that order. - [Squarespace site not showing up on Google: what to check, in order](https://wpministry.co/blog/squarespace-site-not-on-google/): Search Google for site:yourdomain.com first. If nothing comes back, the site is new, is not set to Public, or is asking search engines to stay away through the "Block Search engine crawlers" box or a page hidden from search results. Check them in that order. - [WordPress vs Webflow: when to switch, and when to stay](https://wpministry.co/blog/should-you-leave-wordpress-for-webflow/): Switch when you want what Webflow is by design. It hosts the site and runs its own software, and design and content are edited in one visual tool. Update work, plugin conflicts, slow pages, security worries and a developer who left can be fixed on WordPress without moving. - [Shopify store not showing up on Google: what to check, in order](https://wpministry.co/blog/shopify-store-not-on-google/): Search Google for site:yourdomain.com first. If nothing comes back, the store is new, still private behind its password page, still on a trial, or its pages are marked to be left out. Check those in that order, then the robots.txt file, the sitemap and the domain. - [How to migrate from WordPress to Webflow](https://wpministry.co/blog/migrate-wordpress-to-webflow/): WordPress exports its content as an XML file, and Webflow's CMS import takes a CSV file, so something has to convert one into the other. The pages and the design are built again in Webflow, the plugins stay behind, and every old address needs a redirect. - [How to migrate from Framer to WordPress](https://wpministry.co/blog/migrate-framer-to-wordpress/): Framer has no export that WordPress can import as a site. Each CMS collection leaves as a CSV file through a plugin Framer publishes, and a page's text can be read as markdown. The pages and the design are rebuilt, the images copied, and every old address redirected. - [How to update the PHP version of a WordPress site](https://wpministry.co/blog/update-php-version-wordpress/): The PHP version is changed in your hosting account, not in WordPress. Update WordPress, the plugins and the theme first, try the new version on a staging copy with the debug log on, then switch at the host and check the site. The same menu sets the version back. - [Did AI Overviews cause your traffic drop? What Search Console can show, and what it cannot](https://wpministry.co/blog/traffic-drop-ai-overviews/): No report shows the clicks an AI Overview took from a site. Rule out a technical fault, a redesign, the season and a Google update first, since each can be checked. Then read what Search Console does count. It can make AI Overviews a more or less likely cause. It cannot prove it. - [How to track ChatGPT traffic in Google Analytics 4, and what the count leaves out](https://wpministry.co/blog/track-ai-referral-traffic/): Since May 13, 2026, Google Analytics 4 has put visits from the AI assistants it recognizes in a channel of their own, AI Assistant. It counts only visits that arrive with a referrer, so the figure is a floor. Citations and fetches are counted elsewhere, and neither is a visit. - [How to migrate from Blogger to WordPress and keep your old addresses](https://wpministry.co/blog/migrate-blogger-to-wordpress/): Blogger's backup now comes from Google Takeout as a feed.atom file, and the Blogger importer WordPress lists does not read it. Check your file first, set the time zone and the permalink structure before importing, and redirect the addresses that still differ. On blogspot.com, connect a domain first. - [Is it safe to give someone admin access to your WordPress site?](https://wpministry.co/blog/is-it-safe-to-give-wordpress-admin-access/): It is as safe as the person, because an Administrator can do anything on the site. Never share your own login. Add a user in their name, let WordPress email them a link to set their own password, and delete the user when the work is done. - [Traffic dropped after a website redesign: what to check on a WordPress site, in order](https://wpministry.co/blog/traffic-dropped-after-redesign/): A redesign cuts search traffic in four ways. The new site is closed to search engines, old addresses answer 404, old addresses redirect to the wrong page, or the pages that brought visitors are gone. Three can be read off the site in minutes. The fourth takes Search Console. - [How to appear in Google AI Overviews: what Google requires and what keeps a WordPress page out](https://wpministry.co/blog/appear-in-google-ai-overviews/): Google says a page needs nothing extra to appear in AI Overviews or AI Mode. It has to be indexed and allowed a snippet. On WordPress the work is checking that nothing takes a page out, such as a noindex, a snippet rule or the Search generative AI control in Search Console. - [How to migrate from Webflow to WordPress](https://wpministry.co/blog/migrate-webflow-to-wordpress/): Webflow exports each CMS Collection as a CSV file and, on a paid Workspace plan, the site's HTML, CSS and JavaScript. Neither is a site WordPress can import. The content is carried across, the design is rebuilt, and every old address is redirected. - [www vs non-www for a WordPress site: which to choose, and how to make every other form redirect to it](https://wpministry.co/blog/www-vs-non-www-wordpress/): Google's documentation prefers https over http and states no preference between www and the bare domain. It says to pick one address and redirect the others. WordPress redirects www against non-www for its own pages and nothing more. The rest is a rule on the server. - [WordPress search results pages (/?s=) in Google and Search Console: what they are and what to do](https://wpministry.co/blog/wordpress-search-pages-in-google/): An address with ?s= or /search/ in it is your site's own search page, asked for with someone else's words. WordPress puts noindex on every search page, so Google reads it and leaves it out. Check that your site prints the tag. Nothing was added to the site. - [WordPress coming soon page and SEO: what Google is given, and what to answer while a site is closed](https://wpministry.co/blog/wordpress-coming-soon-page-seo/): A coming soon page that answers 200 is an ordinary page, and Google may index it as the site. For a live site closed for a day or two, Google says to answer 503. WordPress's own maintenance mode does, with Retry-After set to 600. One curl command shows what yours answers. - [WooCommerce products not showing on Google: what to check, in order](https://wpministry.co/blog/woocommerce-products-not-on-google/): First settle where the products are missing. Ordinary results need a product page Google can index, rich product results need product data on that page, and the Shopping tab needs the product in a Merchant Center account. Then check the store in that order. - [WooCommerce category page SEO: what a product category tells Google, its pagination and its address](https://wpministry.co/blog/woocommerce-category-pages-seo/): With no SEO plugin, a WooCommerce category page prints its name as title and heading, your description and a breadcrumb trail, and no canonical link or meta description. Its pagination is set out as Google asks. What it lacks is words for the shopper and links from the rest of the store. - [Staging site indexed by Google: how to remove it and keep the next copy out](https://wpministry.co/blog/staging-site-indexed-in-google/): Put a password on the staging site, or a noindex that Google is allowed to read, then ask for removal in Search Console's Removals tool, which lasts about six months. Do not rely on Disallow in robots.txt. Google says not to, and it stops a noindex from being read. - [Service area business SEO: Google's rules for the profile, and a website with no address to show](https://wpministry.co/blog/service-area-business-website/): A business that travels to its customers gets one Google Business Profile, with its address hidden and up to 20 service areas. Its website needs no street address. It should say who you are, what you do, the area you cover, your phone number and the hours you answer. - [Questions to ask an SEO company before you hire one, and what a good answer sounds like](https://wpministry.co/blog/questions-to-ask-an-seo-company/): Ask an SEO company what it will do, in writing, what access it needs, what it promises, where links and reviews come from and what you keep when you leave. Google's own advice to buyers is the spine. Nobody can promise a ranking, and an audit needs only read access to Search Console. - [How to stop AI training on your WordPress content and stay in AI search answers](https://wpministry.co/blog/opt-out-of-ai-training-wordpress/): You can ask the crawlers that collect for AI training to stay out, one company at a time, and stay in most assistants' search answers. The request is a robots.txt group or, at Microsoft and Amazon, a noarchive tag. It is not a lock, and it does not take back what was already collected. - [How long a new WordPress site takes to show up on Google, and what to do on day one](https://wpministry.co/blog/new-wordpress-site-not-on-google-yet/): Google's help says crawling and indexing a new page takes from a day or two to a few weeks, typically, and to allow at least a week after you submit a sitemap or ask for indexing. Nothing shortens that. Day one is for making sure the wait is only a wait. - [How long does SEO take? The times Google states, and the ones it does not](https://wpministry.co/blog/how-long-does-seo-take/): No single number answers it, and nobody who gives one is quoting Google. Google's page on hiring an SEO once said four months to a year and no longer does. What Google states today is how long crawling, indexing and a site move take, each as a range. - [Bing Webmaster Tools for WordPress: setup, IndexNow, and what it means for ChatGPT and Copilot](https://wpministry.co/blog/bing-webmaster-tools-wordpress/): Microsoft documents that Copilot rests on Bing's index. OpenAI documents its own crawler and does not say a site must be in Bing. Bing Webmaster Tools is free, a WordPress site is verified with one tag or one file, and its AI report shows phrases that Google's does not. - [AI bots slowing down your website: how to confirm it on WordPress and what to do, mildest first](https://wpministry.co/blog/ai-bots-overloading-wordpress/): Count the requests in the server's access log by user agent. If AI crawlers lead, ask them in robots.txt to stay out of the addresses that cost the most, answer named crawlers with 429 while the server is overloaded, and block one outright only if it keeps coming. - [Review stars not showing in Google for a local business: Google's rule, and what to do instead](https://wpministry.co/blog/review-stars-not-showing-local-business/): Google does not show review stars for a rating of a business that sits on the business's own website, in its markup or in an embedded reviews widget. It has said so since September 16, 2019. A local business's stars appear on its Business Profile, from reviews people leave on Google. - [Location pages for multiple cities in WordPress: where Google's spam policy puts the limit](https://wpministry.co/blog/location-pages-wordpress/): A real branch deserves a page of its own. A page for each town that differs only in the town's name is what Google's spam policies describe as doorway abuse. In WordPress, make each branch a child page of one Locations page, and compare any two pages with the place names removed. - [How to add local business schema to WordPress without a plugin](https://wpministry.co/blog/local-business-schema-wordpress/): Save one PHP file in wp-content/mu-plugins and WordPress prints a LocalBusiness block, as JSON-LD, on the page that shows your business details. Google requires a name and an address and recommends hours, a phone number, a URL, coordinates and a price range. - [Google Business Profile suspended: what it means, why it happens and how to appeal](https://wpministry.co/blog/google-business-profile-suspended/): A suspended or disabled Business Profile is one Google has taken down for not following its guidelines. The public cannot open it and its owner cannot act on it. Check it against the guidelines, gather documents, then appeal once in Google's appeals tool from the account that manages it. - [How to request ownership of a Google Business Profile that someone else controls](https://wpministry.co/blog/get-back-google-business-profile/): Ask whoever holds the profile to add you as an owner and make you primary owner. If they cannot or will not, use Google's Request Access form at business.google.com/add. The current owner gets 3 days to answer, and after that Google may let you claim and verify the profile yourself. - [Business not showing on Google Maps: what to check, in order](https://wpministry.co/blog/business-not-showing-on-google-maps/): Search Google Maps for the business's exact name and town. If it is missing, the cause is one of a short list that Google's help names: no Business Profile, an unverified one, a suspension, another owner, a duplicate, or a business its guidelines do not cover. - [NAP consistency: what Google says about name, address and phone, and one place to keep them in WordPress](https://wpministry.co/blog/business-name-address-phone-wordpress/): Google asks for a business's real-world name, an accurate address and a phone number the business controls. Its guidelines and its local ranking page say nothing about directory listings having to match. On your own WordPress site, keep the three in one place so no copy goes stale. - [WooCommerce variations and SEO: variation URLs, canonical links and the price in structured data](https://wpministry.co/blog/woocommerce-variations-seo/): A WooCommerce variable product has one address. Each variation is that address with attribute parameters added, and it carries a canonical link back to the product, so it is not a duplicate to fix. The product's markup gives a price range. A variation's address gives that variation's price. - [WooCommerce out of stock and discontinued products and SEO: leave, hide, delete or redirect](https://wpministry.co/blog/woocommerce-out-of-stock-products-seo/): An out-of-stock WooCommerce product keeps its page. The address still answers 200 and its structured data changes to OutOfStock, so a product that is coming back needs nothing done. One that is gone for good is redirected to a true replacement or left to answer 404, never sent to the home page. - [Missing field "hasMerchantReturnPolicy" and "shippingDetails" in WooCommerce: what they mean and three fixes](https://wpministry.co/blog/woocommerce-missing-field-hasmerchantreturnpolicy/): Both are recommended properties of a merchant listing, not required ones, so the product stays valid. WooCommerce prints neither. Settle them with shipping and return settings in Search Console or Merchant Center, with markup added through a WooCommerce filter, or with an extension. - [Missing field "brand" and "No global identifier provided" in WooCommerce: what they mean, how to fix them](https://wpministry.co/blog/woocommerce-missing-field-brand-gtin/): Both notices name properties Google lists as recommended for a merchant listing, not required, so the product stays valid. WooCommerce prints gtin from its "GTIN, UPC, EAN, or ISBN" field and brand from the brand assigned to the product. Fill both in. Where a product has no GTIN, leave it empty. - [WooCommerce filter URLs indexed in Google: ?orderby, ?filter_ and add-to-cart addresses, and what to do](https://wpministry.co/blog/woocommerce-filter-urls-google/): A WooCommerce store answers at extra addresses for one list of products, such as ?orderby=, ?filter_, ?min_price=, /page/2/ and ?add-to-cart=. Each returns the page with no canonical link and no noindex. A small store can leave them. To stop the crawling, add robots.txt rules for the parameters. - [WooCommerce coming soon mode: how to check it, launch your store, and what Google is sent meanwhile](https://wpministry.co/blog/woocommerce-coming-soon-mode/): Coming soon mode shows a placeholder in place of a WooCommerce store, or the whole site, to everyone except a signed-in administrator or shop manager. A new store starts in it. To launch, choose Live under WooCommerce, Settings, Site visibility, or run wp option update woocommerce_coming_soon no. - [Mismatched value (page crawl) for price in Merchant Center: finding the cause on a WooCommerce store](https://wpministry.co/blog/merchant-center-mismatched-price-woocommerce/): Google compares the price in your product data with the price in the HTML of the product's landing page and in its structured data, and can disapprove the item when they differ. On a WooCommerce store the usual causes are a variation's address, a sale that ended, tax, currency and a cached page. - [wp-sitemap.xml: the sitemap WordPress makes, why it answers 404, and which one to submit](https://wpministry.co/blog/wordpress-sitemap-wp-sitemap-xml/): WordPress has made its own sitemap at /wp-sitemap.xml since version 5.5. It answers 404 while search engines are discouraged or a filter has switched it off, and it redirects when an SEO plugin has replaced it. Submit one sitemap, the one on the Sitemap line of your robots.txt. - [WordPress site not showing up on Google: what to check, in order](https://wpministry.co/blog/wordpress-site-not-on-google/): Search Google for site:yourdomain.com first. If nothing comes back, the site is either new or keeping Google out, through the "Discourage search engines" box, another noindex, a robots.txt rule, or a home page that does not answer with a 200. Check them in that order. - [WordPress SEO without a plugin: what WordPress already does and what it leaves out](https://wpministry.co/blog/wordpress-seo-without-a-plugin/): With no SEO plugin, WordPress still prints a title, a robots tag and a canonical link, serves a sitemap and a robots.txt, and redirects duplicate addresses. It prints no meta description, no sharing tags and no structured data. Google's documentation calls none of those three required. - [WordPress robots.txt: where it is, what it says by default and how to edit it](https://wpministry.co/blog/wordpress-robots-txt/): A fresh WordPress has no robots.txt file. WordPress answers the address itself, with three lines about /wp-admin/ and a Sitemap line. Change it with a real file in the site's root, which replaces that answer, or with the robots_txt filter, which adds to it. - [WordPress attachment pages indexed in Google: why they exist and how to switch them off](https://wpministry.co/blog/wordpress-attachment-pages-in-google/): WordPress gives every uploaded file a page of its own, and Google can list those thin pages. Since WordPress 6.4 one option, wp_attachment_pages_enabled, turns them into redirects to the file. A new site has them off. A site upgraded from an older version still has them on. - [llms.txt on WordPress: what it is, who reads it and whether your site needs one](https://wpministry.co/blog/llms-txt-wordpress/): llms.txt is a proposed markdown file at /llms.txt that lists a site's main pages for AI agents. It is not a standard. Google says Search ignores it, and no AI company's crawler page says its crawler reads yours. An SEO plugin may already have made one, so check first. - [Generative engine optimization (GEO): what is documented, what was studied and what is guesswork](https://wpministry.co/blog/generative-engine-optimization/): Generative engine optimization (GEO, also sold as AEO or AI SEO) is the work of getting a site quoted in AI answers. What the engines document is short. Let their search crawlers in, keep pages indexable, put answers in visible text. The rest is a study or guesswork. ## Error fixes - [How to fix "Could not create directory" in WordPress](https://wpministry.co/errors/could-not-create-directory/): WordPress asked the server to make a folder during an install or an update, and the server refused. The path printed after the message names the folder. Correct who may write to it, or set aside a wp-content/upgrade folder WordPress cannot use. Setting folders to 777 is not the fix. - [How to fix "The REST API encountered an error" in WordPress Site Health](https://wpministry.co/errors/rest-api-encountered-an-error/): Site Health tests the REST API with one request from the server to the site's own address. "The REST API encountered an error" means no answer came back at all. The line that begins "REST API Response:" says why, and each reason has its own fix. - [How to fix "Sorry, you are not allowed to upload this file type" in WordPress](https://wpministry.co/errors/not-allowed-to-upload-this-file-type/): WordPress accepts a file only when its extension is on its list of allowed types and its content matches that extension. Save the file in a format on the list, or add the one type you need with a short plugin. Leave the check itself switched on. - [How to fix "Your PHP installation appears to be missing the MySQL extension" in WordPress](https://wpministry.co/errors/missing-the-mysql-extension/): The PHP that runs the site has no mysqli extension loaded, so WordPress cannot reach its database and stops before it does anything else. Nothing is lost. Switch mysqli on for the PHP version the site really runs, in the hosting panel or through the host. - [How to fix "Update failed: Download failed." in WordPress](https://wpministry.co/errors/download-failed/): WordPress could not fetch the package for an update or an install, and stopped before it changed anything. The words after "Download failed." give the reason, such as a blocked request, a timeout, a refusal by the server that holds the file, or a temporary folder it cannot use. Read them first. - [How to fix "Your site could not complete a loopback request" in WordPress](https://wpministry.co/errors/could-not-complete-a-loopback-request/): Site Health asked the server for the site's own wp-cron.php and did not get a 200 back. The line under the message says why, as a cURL error number or a status code. Find what stands between the server and its own address, because scheduled tasks and the file editors rely on the same route. - [How to fix "Another update is currently in progress" in WordPress](https://wpministry.co/errors/another-update-is-currently-in-progress/): WordPress locks its own update while one runs, and this message means the lock is set. If an update is running, let it finish. If one was cut short, WordPress honors its lock for 15 minutes, then lets the next update through. To go sooner, delete the option core_updater.lock. - [How to fix the 413 Request Entity Too Large error in WordPress](https://wpministry.co/errors/413-request-entity-too-large/): The web server, or a proxy in front of it, refused a request larger than its own limit, and the file never reached PHP. Raising PHP's upload_max_filesize does not clear it. Send the file over SFTP and install it with WP-CLI, or raise the limit on the server that answered. - [WooCommerce order stuck on "Pending payment": how to tell paid from unpaid, and fix the cause](https://wpministry.co/errors/woocommerce-orders-stuck-pending-payment/): An order is "Pending payment" until WooCommerce is told the payment succeeded. A stuck one was either never paid, which is normal, or was paid and the payment provider's notification never reached your site. The provider's own record of the payment tells you which. - [How to fix WooCommerce not sending order emails](https://wpministry.co/errors/woocommerce-orders-not-sending-emails/): Either WooCommerce never sent the email, or it sent it and the message did not arrive. Its own log of order emails says which. From there the cause is an unpaid order, an email switched off, a wrong recipient, a site that cannot send mail, a spam filter, or code that stops the email. - [WooCommerce add to cart not working: find the cause and fix it](https://wpministry.co/errors/woocommerce-add-to-cart-not-working/): What you see points to the cause. A missing button means a product that cannot be bought or an old theme template. A button that does nothing or spins means a script error or a blocked request. A cart that empties means a cache, a missing Cart page or a lost session. - [Elementor stuck on the loading screen: how to find the cause and fix it](https://wpministry.co/errors/elementor-stuck-on-loading/): When Edit with Elementor never finishes loading, one of the editor's requests has failed or one of its scripts has stopped. The browser's Console and Network panel and Elementor's Safe Mode show which. Then one fix applies, most often a plugin conflict, memory, or a blocked request. - [How to fix "The preview could not be loaded" in Elementor](https://wpministry.co/errors/elementor-preview-could-not-be-loaded/): Elementor shows this when the page it loads inside the editor comes back without Elementor's scripts in it. An error, a redirect, another plugin's page or a template with no footer call does that. The line under the heading and one look at the preview address tell you which. - [How to fix "Sorry, the content area was not found in your page" in Elementor](https://wpministry.co/errors/elementor-content-area-not-found/): Elementor draws its editor where the theme prints the page's content. This message means the page that answered the editor has no such place. Switch the page to one of Elementor's own templates, add the content call to the theme, or remove whatever answered in the page's place. - [How to fix "The editor has encountered an unexpected error" in WordPress](https://wpministry.co/errors/editor-has-encountered-an-unexpected-error/): The block editor shows this when one of its scripts fails while the screen is being drawn. Your saved post is untouched in the database. Save a copy first, then read the text behind "Copy error". It names the script that failed, and the folder in its path names the plugin or theme. - [How to fix "This block contains unexpected or invalid content" in WordPress](https://wpministry.co/errors/block-contains-unexpected-or-invalid-content/): The editor compared the HTML saved for a block with what the block's code writes today, and the two differ. The saved content is intact, and nothing changes until you press a button. Copy the post first, then choose by what changed the markup. - ["Page with redirect" in Search Console: what it means on a WordPress site, and which ones to fix](https://wpministry.co/errors/page-with-redirect/): "Page with redirect" lists addresses that answered Google with a redirect. The address is not indexed. The page it leads to can be. On a WordPress site the list is usually old and alternative addresses that WordPress forwards by itself, and they need nothing. A few can be wrong. - ["Not found (404)" in Search Console: which addresses to fix on a WordPress site, and which to leave](https://wpministry.co/errors/not-found-404-search-console/): "Not found (404)" lists addresses that answered 404 when Google asked for them. Most never were pages or were removed on purpose, and Google's help says such 404s do no harm. Only two kinds need work: a page that moved, which needs a redirect, and a page that should exist. - ["Crawled - currently not indexed" on a WordPress site: what to leave and what to check](https://wpministry.co/errors/crawled-currently-not-indexed/): "Crawled - currently not indexed" means Google fetched the address and chose not to index it. If the addresses listed are feeds and archives WordPress makes by itself, that is the right outcome and nothing needs doing. For a page you wrote, it is Google's judgment, and no setting reverses it. - ["Blocked due to other 4xx issue" in Search Console: what it means on WordPress and what to do](https://wpministry.co/errors/blocked-due-to-other-4xx-issue/): Google asked for the address and got a status code in the 400s other than 401, 403 or 404. On WordPress's own files, such as admin-ajax.php and xmlrpc.php, that is normal and needs nothing. For a real page, find the code, then what sent it, which is often a rule or a firewall. - ["Blocked by robots.txt" in Search Console: when it is fine, and how to find the rule on WordPress](https://wpministry.co/errors/blocked-by-robots-txt/): "Blocked by robots.txt" means Google did not fetch the address because your robots.txt told it not to. For /wp-admin/ and a store's add-to-cart addresses that is intended. If the address is a page you want found, a rule is catching more than it was written for: find the line and change it. - ["Alternate page with proper canonical tag" in Search Console: what it means on a WordPress site](https://wpministry.co/errors/alternate-page-with-proper-canonical-tag/): "Alternate page with proper canonical tag" is not an error. The address listed is a copy of another page, it says so with a canonical link, and Google agreed and indexed the other page. Google's help says there is nothing you need to do. Look closer only if a page you want found is on the list. - [How to fix "Your connection is not private" on a WordPress site](https://wpministry.co/errors/your-connection-is-not-private/): The browser could not verify your site's security certificate, so it stopped before loading the page. A code on the warning says why. The certificate has expired, was issued for a different name, or comes from an issuer the browser does not trust. Most cases are fixed in your hosting panel. - [How to fix WordPress when it keeps logging you out](https://wpministry.co/errors/wordpress-keeps-logging-out/): WordPress keeps you logged in with a cookie that it checks on every page. If you are sent back to the login screen while you work, the cookie has stopped arriving or stopped passing the check. Site addresses that differ, a browser that drops it and security keys that change are the usual reasons. - [How to fix WooCommerce payment gateway errors](https://wpministry.co/errors/woocommerce-payment-gateway-errors/): The order is created but the payment is refused, or the money is taken and the order never shows as paid. The order's status and notes say which. Usual causes are mixed-up test and live credentials, payment confirmations that cannot reach your site, and a gateway not offered at checkout. - [How to fix "The uploaded file exceeds the upload_max_filesize directive in php.ini" in WordPress](https://wpministry.co/errors/upload-max-filesize/): PHP refused a file larger than its upload_max_filesize setting, and WordPress passed the message on. Raise upload_max_filesize and post_max_size together, in .htaccess, in .user.ini or in your host's PHP settings, depending on how PHP runs. Nothing on the site has been lost. - [How to fix "Updating failed" and "Publishing failed" in the WordPress editor](https://wpministry.co/errors/updating-failed/): The block editor saves through the site's REST API. "Updating failed" means the answer to that request was not the JSON the editor expects. Nothing already saved is lost. Look at what came back instead of JSON, and the fix follows from it. - [How to fix "Parse error: syntax error, unexpected" in WordPress](https://wpministry.co/errors/syntax-error-unexpected/): PHP could not read one file, almost always because code pasted into functions.php or a plugin file has a character missing. The message names the file and the line. Take the new code out, or put a clean copy of the file back, and the site returns. - [How to fix "Sorry, you are not allowed to access this page." in WordPress](https://wpministry.co/errors/sorry-you-are-not-allowed-to-access-this-page/): WordPress shows this when the account you are logged in with lacks the capability a dashboard screen asks for. The account's role is too low, the roles in the database are damaged or stored under an old table prefix, or a plugin is in the way. Nothing on the site is lost. - [How to fix "Missing a temporary folder" in WordPress](https://wpministry.co/errors/missing-a-temporary-folder/): PHP could not create the temporary file that every upload begins as, so WordPress was handed an error instead of a file. The folder is a PHP setting on the server. Defining WP_TEMP_DIR in wp-config.php does not clear the message, because that sets a different folder. - [How to fix "Missed schedule" on a scheduled WordPress post](https://wpministry.co/errors/missed-schedule/): The post's time passed and WordPress did not publish it. The post is intact. Publish it now, then find the reason. WordPress only runs scheduled tasks when a page is loaded and the site can send a request to itself, and one line in wp-config.php switches that off. - [How to fix "Maximum execution time exceeded" in WordPress](https://wpministry.co/errors/maximum-execution-time-exceeded/): PHP stopped a request because it ran longer than the server allows, which is 30 seconds by default. The log names the file that was running when time ran out. Raise the limit for a one-off long job. If an ordinary page needs longer, find what is slow instead. - [How to fix the "HTTP error" when uploading images to WordPress](https://wpministry.co/errors/image-upload-http-error/): The uploader got a failed answer from the server, or none, most often because creating the picture's smaller sizes ran out of memory or time. Upload a copy scaled to 2560 pixels, or read the server's real error and fix what it names. Your original file is untouched. - [How to fix "Cannot modify header information - headers already sent" in WordPress](https://wpministry.co/errors/headers-already-sent/): PHP was asked to send a header, such as a redirect or the login cookie, after part of the page had already gone out. The message names two files. The first, after "output started at", is where the stray output came from, and it is the one to fix. - [How to fix ERR_TOO_MANY_REDIRECTS in WordPress](https://wpministry.co/errors/err-too-many-redirects/): ERR_TOO_MANY_REDIRECTS means the site keeps sending the browser from one address to another and never to a page. Two parts of the setup disagree about the site's address, usually over https or www. Find the addresses the loop runs between, then make WordPress and the server agree. - [How to fix ERR_CONNECTION_TIMED_OUT on a WordPress site](https://wpministry.co/errors/err-connection-timed-out/): ERR_CONNECTION_TIMED_OUT means the browser tried to connect to your site's server and got no answer. WordPress was never reached, so the cause is the server, a firewall, DNS or your own network. Check from a second network first, then follow what that shows. - [How to fix "Destination folder already exists" in WordPress](https://wpministry.co/errors/destination-folder-already-exists/): WordPress found a folder with the plugin's or theme's name already in place, and stopped before changing anything. If the plugin is installed, activate, update or replace it. If the folder is a leftover from an install that did not finish, move it out and install again. - [How to fix "There has been a critical error on this website" in WordPress](https://wpministry.co/errors/critical-error/): WordPress shows this message in place of any page that PHP could not finish. It is the same whatever failed. The real error is one line, kept in an email to the site's administrator, in the debug log and in the server's log. Find that line first. It says which fix you need. - [How to fix the 504 Gateway Timeout error in WordPress](https://wpministry.co/errors/504-gateway-timeout/): A 504 comes from a server in front of WordPress, such as nginx or a CDN, that stopped waiting for an answer. The work behind it may have finished anyway. Find which request is slow, run a long job from the command line, and raise the wait only where a job needs it. - [How to fix the 503 Service Unavailable error in WordPress](https://wpministry.co/errors/503-service-unavailable/): A 503 means the server is running and cannot handle the request right now, because of maintenance or overload. The words on the page show who sent it. That can be WordPress during an update, a plugin, the web server at a hosting limit, or a service in front of the site. - [How to fix the 502 Bad Gateway error in WordPress](https://wpministry.co/errors/502-bad-gateway/): A 502 means one server passed the request to another and got no usable answer. On a WordPress site that is usually nginx, or a CDN, failing to get a page from PHP. Your content is safe. Most fixes belong to whoever runs the server, and a few checks tell you what to ask for. - [How to fix "429 Too Many Requests" in WordPress](https://wpministry.co/errors/429-too-many-requests/): A 429 means something counted the requests from one address and decided there were too many in a short time. WordPress itself sends it only for comments posted seconds apart. Otherwise it comes from the host, a firewall or a plugin. Wait, then find out which one answered. - [How to fix WordPress not sending email](https://wpministry.co/errors/wordpress-not-sending-email/): WordPress hands every email to the mail program on its own server. Many hosts restrict that program or do not provide one, and mail sent that way is often treated as spam. A two-minute test shows which problem you have. The lasting fix is a mail service that vouches for your domain. - [How to fix a WooCommerce checkout that is not working](https://wpministry.co/errors/woocommerce-checkout-not-working/): When customers cannot place an order, the cause is usually on the site itself. The Checkout page is not set up, a cache is serving a stored copy of it, a plugin or the theme breaks its script, or PHP fails as the order is saved. Where the order stops tells you which. - [How to fix the WordPress white screen of death](https://wpministry.co/errors/white-screen-of-death/): A blank page, or "There has been a critical error on this website", means PHP hit an error it could not recover from, almost always in a plugin or the theme. Switching that one plugin or theme off brings the site back. The error log names which one. - [How to fix mixed content warnings in WordPress](https://wpministry.co/errors/mixed-content/): Mixed content means a page loaded over https asks for an image, a stylesheet or a script over plain http. Browsers block those requests or change them, so parts of the page go missing. The fix is to find where the http addresses come from and correct them there. - [How to fix a WordPress login page that keeps refreshing or redirecting](https://wpministry.co/errors/login-page-refreshing-and-redirecting/): When the WordPress login page reloads or sends you back to itself with no error, the login is being lost on the way. Either the browser is not keeping WordPress's cookie, or the form is redirected before WordPress reads it. A private window tells you which side to look at. - [How to fix "Error establishing a database connection" in WordPress](https://wpministry.co/errors/error-establishing-a-database-connection/): WordPress reached your web server but could not open its database. Your posts and settings are still there. In most cases the cause is a database name, user, password or host in wp-config.php that no longer matches. - [How to fix "Briefly unavailable for scheduled maintenance" in WordPress](https://wpministry.co/errors/briefly-unavailable-for-scheduled-maintenance/): WordPress puts a site into maintenance mode while it installs an update and takes it out again when the update finishes. If the update was cut short, the site stays in maintenance mode. Removing one small file brings it back. - [How to fix "Are you sure you want to do this?" in WordPress](https://wpministry.co/errors/are-you-sure-you-want-to-do-this/): WordPress shows this when a request arrives without a valid security token. Current versions word it "The link you followed has expired." The usual causes are a page left open too long, an upload larger than the server accepts, and a plugin that interferes with the tokens. ## Glossary - [XML-RPC](https://wpministry.co/glossary/xml-rpc/): XML-RPC is an older way for outside programs to work with a WordPress site, through the file xmlrpc.php. Jetpack and the mobile apps still use it. Its calls that need a login carry a username and password, which makes the file a target for password guessing. - [WP-Cron](https://wpministry.co/glossary/wp-cron/): WP-Cron is WordPress's scheduler. It publishes scheduled posts, checks for updates and runs plugins' timed jobs. It has no clock of its own. Page loads start it, so on a quiet site, or one that cannot reach itself, tasks run late or not at all. - [wp-config.php](https://wpministry.co/glossary/wp-config-php/): wp-config.php is the file that holds a WordPress site's own settings, starting with the database name, user and password. WordPress reads it at the start of every request, so one wrong character in it can take the whole site down. - [Web application firewall (WAF)](https://wpministry.co/glossary/web-application-firewall/): A web application firewall reads each request sent to a website and refuses the ones that match its rules for known attacks. It can run inside WordPress as a plugin, on the web server, or in front of the site. Where it sits decides what it can stop. - [Two-factor authentication (2FA)](https://wpministry.co/glossary/two-factor-authentication/): Two-factor authentication asks for a second proof after the password, usually a code from an app on your phone. WordPress does not include it, so a plugin adds it. A recovery code is a spare that works once, for the day the phone is not there. - [TTFB (Time to First Byte)](https://wpministry.co/glossary/ttfb/): TTFB, Time to First Byte, is how long a browser waits between starting to load a page and receiving the first byte of the answer. Nothing else on the page can begin until then, so a slow first byte holds back every later figure. - [Transient](https://wpministry.co/glossary/transient/): A transient is a piece of data that WordPress or a plugin stores under a name for a limited time, so it does not have to be worked out again. Without a persistent object cache, transients are rows in the options table. With one, they live in the cache. - [Staging site](https://wpministry.co/glossary/staging-site/): A staging site is a private copy of a live website at its own address, where updates and changes are tried before visitors see them. It helps only if the copy is kept quiet. It must not email customers, take real payments or be open to search engines. - [SSL certificate](https://wpministry.co/glossary/ssl-certificate/): An SSL certificate is a file on your web server that lets browsers open an encrypted https connection and check that they reached your domain. The protocol is now called TLS, and the name SSL stayed. It proves control of a domain, not who runs the site. - [Shortcode](https://wpministry.co/glossary/shortcode/): A shortcode is a short tag in square brackets, such as [gallery], that WordPress replaces with content when it shows the page. The plugin that defines the tag supplies the content, so when that plugin is gone the page shows the bracketed text instead. - [Salts and security keys](https://wpministry.co/glossary/salts-and-security-keys/): WordPress salts and security keys are eight long random strings in wp-config.php. WordPress uses them to make the login cookies and form tokens it hands out. Replace them and everyone who is logged in has to log in again. - [REST API](https://wpministry.co/glossary/rest-api/): The WordPress REST API lets programs read and change a site by exchanging JSON with addresses under /wp-json/. The block editor is built on it. When a firewall, a plugin or a missing rewrite rule blocks it, saving and publishing fail. - [Render-blocking resources](https://wpministry.co/glossary/render-blocking-resources/): A render-blocking resource is a stylesheet or a script the browser must download and process before it draws the page. Until that is done the visitor sees a blank screen. On WordPress they are the CSS and JavaScript files that themes and plugins load in the head. - [Post revisions](https://wpministry.co/glossary/post-revisions/): A revision is a stored copy of a post or page as it was at an earlier save. WordPress records one for each saved draft or published update, keeps every one by default, and lets you compare and restore them. An autosave is a separate, single copy per user. - [PHP memory limit](https://wpministry.co/glossary/php-memory-limit/): The PHP memory limit is the most memory one request to a site may use before PHP stops it. WordPress asks for 40 MB on ordinary pages and 256 MB in the dashboard unless you set otherwise, and it can only raise the limit as far as the host allows. - [Permalink](https://wpministry.co/glossary/permalink/): A permalink is the full, permanent address of a post, page or archive on a WordPress site. One setting decides the pattern every post's address follows, and changing that pattern changes the address of every post at once. - [Page cache](https://wpministry.co/glossary/page-cache/): A page cache keeps the finished HTML of a page and hands that copy to the next visitor, so WordPress does not build the page again. It is the biggest single speed gain on most sites, and it must leave out every page built for one person. - [OPcache](https://wpministry.co/glossary/opcache/): OPcache is the part of PHP that keeps the compiled form of each PHP file in memory, so the server does not read and compile WordPress's code on every request. Your host switches it on and sets its size. WordPress reports on it in Site Health. - [Object cache](https://wpministry.co/glossary/object-cache/): WordPress's object cache keeps data it has read from the database, so the same data is not fetched twice. By default it lasts for one request. A persistent object cache keeps it between requests, which speeds up the pages a page cache cannot hold. - [Nonce](https://wpministry.co/glossary/nonce/): A WordPress nonce is a short token in a form or a link that shows the request came from a page WordPress built for you. Despite the name, it is not used once. It lasts between 12 and 24 hours, and when one fails you see "The link you followed has expired." - [Must-use plugin (mu-plugin)](https://wpministry.co/glossary/must-use-plugin/): A must-use plugin is a PHP file in wp-content/mu-plugins that WordPress runs on every request. It is always on, cannot be deactivated from the dashboard and gets no update notices, so it is the plugin most easily overlooked. - [Minification](https://wpministry.co/glossary/minification/): Minification rewrites a CSS or JavaScript file without the comments, spaces and long names a browser does not need, so the same code downloads smaller. It is not compression and it is not combining files. WordPress already ships its own files minified. - [Malware](https://wpministry.co/glossary/malware/): Malware is software written to do harm. On a WordPress site it is code someone planted to send visitors elsewhere, publish spam pages, take what people type or keep a way back in. A warning or a scan result is a reason to check, not proof either way. - [Lazy loading](https://wpministry.co/glossary/lazy-loading/): Lazy loading means the browser fetches an image or an embed only when the visitor scrolls near it, not when the page opens. WordPress does it by itself, for images since 5.5 and for iframes since 5.7. It must never apply to the main image at the top of a page. - [.htaccess](https://wpministry.co/glossary/htaccess/): .htaccess is a settings file the Apache web server reads from a website's own folder each time a page is requested. WordPress writes its permalink rules there. One line the server cannot read takes every page of the site down. - [Heartbeat API](https://wpministry.co/glossary/heartbeat-api/): The Heartbeat API is a script in the WordPress dashboard that checks in with the server on a timer. WordPress uses it to keep post locks, carry autosaves and notice an expired login. Each check-in is a request to admin-ajax.php, which is why it shows up in load problems. - [DNS propagation](https://wpministry.co/glossary/dns-propagation/): DNS propagation is the wait after a DNS record changes, while resolvers around the world still hold the old answer in their caches. Nothing is sent out. Each cached copy lasts until its TTL runs out, so the TTL decides how long the wait is. - [debug.log](https://wpministry.co/glossary/debug-log/): debug.log is the file where WordPress records PHP errors, warnings and notices while its debug log is switched on. It is the first place to look when a page is blank or shows a critical error, and by default anyone who knows its address can read it. - [Database table prefix](https://wpministry.co/glossary/database-table-prefix/): The table prefix is the few characters at the start of every WordPress database table's name, wp_ unless it was changed at setup. It is set in wp-config.php and it is also written inside the database, which is why changing it by hand locks administrators out. - [Core Web Vitals](https://wpministry.co/glossary/core-web-vitals/): Core Web Vitals are three measurements Google defines for how a page feels to a visitor: how soon the main content appears, how fast the page reacts, and whether the layout stays still. They are taken from real visits in Chrome, not from a test. - [Child theme](https://wpministry.co/glossary/child-theme/): A child theme is a small theme that takes its design and features from another theme, its parent, and holds only your changes to it. The parent can then be updated without those changes being lost. - [Checksum](https://wpministry.co/glossary/checksum/): A checksum is a short string worked out from a file's contents. If the file changes, so does the string. WordPress.org publishes one for every file in WordPress and in its plugins, so a site's files can be compared with the originals. - [CDN (content delivery network)](https://wpministry.co/glossary/cdn/): A CDN is a network of servers in many places that keeps copies of a site's files and answers each visitor from a server near them. On a WordPress site it mostly serves images, stylesheets and scripts. It does not make a slow server build pages any faster. - [Canonical URL](https://wpministry.co/glossary/canonical-url/): A canonical URL is the one address chosen to stand for a page that can be reached at several. WordPress names it in a rel="canonical" link on single posts and pages. Search engines treat that link as a hint and may choose another address. - [Brute force attack](https://wpministry.co/glossary/brute-force-attack/): A brute force attack is a program trying one username and password after another until one works. On WordPress it is aimed at wp-login.php and xmlrpc.php. Failed attempts in a log are not a break-in, but enough of them can slow a site down. - [Block theme](https://wpministry.co/glossary/block-theme/): A block theme is a WordPress theme built entirely from blocks, so the header, the footer and the layout of every page are edited on screen in the Site Editor. A classic theme builds them in PHP files and is set up in the Customizer. - [Backdoor](https://wpministry.co/glossary/backdoor/): A backdoor is a way back into a site that an attacker leaves behind, so that they can return without the login and without the hole they first used. It is why a WordPress site that was cleaned gets infected again. - [Application password](https://wpministry.co/glossary/application-password/): An application password lets a program reach a WordPress site as one user, through the REST API or XML-RPC, without that user's main password. It does not work on the login screen. Each one is made and revoked on the user's profile, and the feature needs HTTPS. - [Action Scheduler](https://wpministry.co/glossary/action-scheduler/): Action Scheduler is the background job queue that ships inside WooCommerce and other plugins. It runs tasks such as subscription payments, webhooks and emails later, in batches, and logs each one. When its queue stops moving, those jobs wait. - [301 redirect](https://wpministry.co/glossary/301-redirect/): A 301 redirect is a server's answer that an address has moved for good, with the new address attached. Browsers go there by themselves, and Google shows the new address in its results. Use one whenever a page's address changes permanently. - [Slug](https://wpministry.co/glossary/slug/): A slug is the part of a web address that names one post, page, category or tag. WordPress makes it from the title, in lowercase with hyphens for spaces. You can change it, and changing it changes the page's address. ## Cost guides - [How much a WordPress website costs per year: the eight lines of the budget and what drives each](https://wpministry.co/cost/wordpress-website-yearly/): WordPress itself is free. Running a site on it has about eight lines of cost, from the domain and hosting to upkeep and repairs. The hosting, the number of paid plugins and who does the upkeep decide most of the total. - [How much does SEO cost? What sellers' surveys report, and what moves the price on a WordPress site](https://wpministry.co/cost/wordpress-seo/): SEO is sold as a one-time job at a fixed price, by the month, or by the hour. In two surveys of sellers the most common monthly fee was $500 to $1,000, and one put the average at $2,917. Each figure is a seller's own report, and the surveys are years apart. - [WordPress speed optimization cost: what the job is, what it should include and what moves the price](https://wpministry.co/cost/wordpress-speed-optimization/): What speed optimization costs depends on what is slow. Settings such as a page cache, image sizes and the PHP version are a small job. A heavy theme, slow queries and too many scripts need development. Hosting that cannot serve the site is not a speed job at all. - [WordPress migration cost: which job you are being quoted for, and what moves the price](https://wpministry.co/cost/wordpress-migration/): A migration quote is for one of three jobs. Moving the same WordPress site to another host is a copy, sold at a low fixed price or done free by the new host. A new domain adds redirects. A change of platform is a rebuild, and it is quoted. - [WooCommerce maintenance cost: why a store costs more, and what the extra should buy](https://wpministry.co/cost/woocommerce-maintenance/): A WooCommerce store costs more to maintain than a brochure site because more can break, a break costs money by the hour, and a careful update takes longer. The extra should buy a staging copy, a test order through each payment method, and backups that keep up with orders. - [What WordPress malware removal costs: how it is priced and what a cleanup should include](https://wpministry.co/cost/wordpress-malware-removal/): A WordPress malware cleanup is priced by how it is sold (a fixed fee, an hourly rate or a subscription) and by what counts as clean. Compare quotes on scope. Check that the way in is found and closed, and that a review request, a written report and a guarantee are included. - [WordPress maintenance cost: what you pay for, and why prices differ](https://wpministry.co/cost/wordpress-maintenance/): You pay for WordPress maintenance in your own hours, by the hour when something breaks, or as a fixed monthly fee. The price moves with how much there is to update, whether the site sells, and what is promised when an update goes wrong. ## Topics - [SEO on Shopify, Wix, Squarespace and Webflow](https://wpministry.co/topics/seo-other-platforms/): What a hosted platform tells a search engine by itself, which of it is yours to change, and how to check whether your pages can be found. The checks are the same on every platform. What you can do about a finding is not. - [Local SEO for a WordPress site](https://wpministry.co/topics/local-seo/): What a local business's own website has to say for it to be found nearby, and what belongs in its Google Business Profile instead. Start with whether the profile and the site agree, then the site's markup, then its pages for each place it serves. - [WordPress SEO](https://wpministry.co/topics/wordpress-seo/): What WordPress tells a search engine, where that goes wrong, and how to check each part. Start with whether your pages can be found at all, then the sitemap, then the addresses. - [AI search and WordPress](https://wpministry.co/topics/ai-search/): What is known about being found and quoted by AI assistants and by Google's AI answers, kept apart from what is only said. Start with whether their crawlers can reach your site, then what each engine documents. - [WordPress care plans for agencies and freelancers](https://wpministry.co/topics/wordpress-agencies/): For agencies and freelancers who build WordPress sites and are asked to look after them. How to sell upkeep as a plan, what to put in the proposal and the monthly report, and how to hand the work to someone else under your own name. - [WordPress errors and troubleshooting](https://wpministry.co/topics/wordpress-troubleshooting/): What to do when a WordPress site shows an error, a blank page or will not let you in. Start from the message on the screen, find which of its causes you have, and fix that one. - [WordPress speed and Core Web Vitals](https://wpministry.co/topics/wordpress-speed/): How to find out why a WordPress site is slow and what to fix first. Measure, start with the server and the page cache, then images, then everything the browser has to load. - [WordPress security and hacked sites](https://wpministry.co/topics/wordpress-security/): How to tell whether a WordPress site has been broken into, what to do in the first hour, how to clean it, and how to close the ways in so that it does not happen again. - [Moving a WordPress site or changing platform](https://wpministry.co/topics/wordpress-migration/): How to move a site to a new host, a new address or a new platform without losing its pages, its search traffic or its orders. What moves by itself, what has to be rebuilt, and how old addresses are redirected. - [WordPress maintenance and care plans](https://wpministry.co/topics/wordpress-maintenance/): The routine work that keeps a WordPress site running, how to do it yourself safely, and how to decide whether to hand it to someone else. - [WooCommerce stores](https://wpministry.co/topics/woocommerce/): Keeping a WooCommerce store taking orders. What to check when checkout or payments fail, how to update without breaking the cart, and how to make a slow store faster. ## Resources - [A sample WordPress maintenance report: what ours says, line by line](https://wpministry.co/resources/sample-wordpress-maintenance-report/): The monthly report we send a care plan customer, shown as a sample with made-up figures for two sites. Every line is read from a record: the work entered, the time counted, what the uptime checks found, and a monthly check from outside. It carries no score. - [WordPress SEO audit checklist: what to check, in order, and how to check each item](https://wpministry.co/resources/wordpress-seo-audit-checklist/): A technical SEO audit of a WordPress site as a checklist, in the order that finds the costly faults first. Can Google reach the site, does each page have one address, what is in the sitemap, what should stay out, what each page says, and what Search Console reports. - [Website redesign SEO checklist: what to record, map and check on a rebuilt site](https://wpministry.co/resources/redesign-seo-checklist/): A redesign loses search traffic when addresses change without redirects, when pages that brought visitors are dropped or thinned, or when the new site goes live closed to search engines. This checklist covers each, in order, for a rebuild on the same domain. - [Local SEO checklist for a WordPress site: the profile, the website, and what to leave out](https://wpministry.co/resources/local-seo-checklist-wordpress/): A local SEO checklist for a business with a WordPress site. Every item is something Google or WordPress documents, with how to check it, from the Business Profile to the site's details, indexing, markup, location pages and reviews. The last section lists what it leaves out, and why. - [WooCommerce sale readiness checklist: Black Friday or any big sale](https://wpministry.co/resources/woocommerce-sale-readiness-checklist/): A WooCommerce store fails on its busiest day for a short list of reasons, and each can be checked beforehand. This checklist runs from four weeks before a sale, such as Black Friday, to the day after, with the screen and the setting to check for each item. - [White label maintenance agreement: a checklist of what it has to settle](https://wpministry.co/resources/white-label-agreement-checklist/): A white label maintenance agreement has to settle five things before anyone logs in. Who talks to the client, what work is included, who has access and how it ends, what happens when something breaks, and how either side leaves. This checklist gives the question for each. - [Taking over a client's WordPress site: a checklist to run before you change anything](https://wpministry.co/resources/client-site-takeover-checklist/): Before you change anything on a WordPress site someone else built, take a backup of your own, record the state the site is in, and send the client what you found in writing. This checklist gives the command or screen for each check and what to write down. - [WordPress launch checklist: what to check before a site goes live](https://wpministry.co/resources/wordpress-launch-checklist/): A checklist for the days before a new or rebuilt WordPress site opens to the public. It covers content, settings, accounts, security, speed, search, forms and email, a store, and legal pages, in the order that catches the most with the least work. - [WooCommerce checkout is down: a runbook](https://wpministry.co/resources/woocommerce-checkout-down-runbook/): What to do, in order, when customers cannot pay on a WooCommerce store. Go through the checkout yourself and read the latest orders, work out which of three faults you have, keep orders coming in with a second way to pay, then account for every payment made while it was broken. - [Website migration checklist: before, during and after the move](https://wpministry.co/resources/website-migration-checklist/): A checklist for moving a website to another platform or another host. List every address first, build the new site in private, switch the DNS only once the redirects are in place, and keep the old hosting until the new site has settled. - [WordPress site down: a runbook for the first hour](https://wpministry.co/resources/wordpress-site-down-runbook/): What to do, in order, when your WordPress site stops loading. Confirm it is down for everyone, write down what the screen says, find the layer at fault, and choose the smallest change that brings the site back. - [Monthly WordPress maintenance report template](https://wpministry.co/resources/monthly-maintenance-report-template/): A report to copy and send a client each month. It covers what was updated, the backups, uptime, security, the changes they asked for, what needs their decision and what comes next. Every figure in it comes from a record you can point to. - [Hacked WordPress site: a runbook for the first hour](https://wpministry.co/resources/hacked-wordpress-site-runbook/): What to do in the first hour after you find your WordPress site has been hacked, in order. Write down what you see, protect visitors, keep a copy of the site as it is, lock the attacker out and tell the people who need to know. Cleaning comes after. - [A WordPress update went wrong: a runbook](https://wpministry.co/resources/failed-wordpress-update-runbook/): What to do, in order, when an update to WordPress, a plugin or a theme leaves the site broken or stuck. Stop updating, copy down what the screen says, get back into the dashboard, then choose between going back one version and restoring a backup. - [WordPress care plan proposal template for agencies](https://wpministry.co/resources/care-plan-proposal-template/): A proposal to copy and send a client when you offer a monthly WordPress care plan. It says what is done each month, what is not included, what it costs, how to ask for something and how either side ends it, with stand-ins for your own terms. ## Services - [WordPress security service](https://wpministry.co/services/wordpress-security/): Ongoing security for a WordPress site through a care plan, with weekly updates, security scanning and daily offsite backups. If the site is already hacked, a one-time malware removal cleans it first. - [WordPress speed optimization](https://wpministry.co/services/speed-optimization/): A one-time job to make slow WordPress pages load faster, with measurements before and after on the pages you name. It promises no score, no ranking and no result. You get both sets of figures, so you can see what changed. - [Emergency WordPress support](https://wpministry.co/services/emergency-support/): A one-time fix for a WordPress site that is down or a checkout that has stopped taking orders. An Emergency Fix goes to the front of the queue. If we cannot fix it, you pay nothing. - [WordPress plugin development](https://wpministry.co/services/wordpress-plugin-development/): A plugin written for your WordPress site, for what no existing plugin does, for code that sits in a theme's functions.php, or in place of a plugin nobody maintains. Sold as developer time by the hour, in blocks, and quoted before work starts. - [WordPress accessibility audit and fixes](https://wpministry.co/services/wordpress-accessibility-audit/): A check of pages of your WordPress site against WCAG 2.2 at Level AA, by automated checks and by hand, with each finding written up, and fixes to what the site itself controls. Sold as developer time by the hour, quoted before work starts. No compliance with any law is promised. - [WooCommerce development](https://wpministry.co/services/woocommerce-development/): Work in code on a WooCommerce store, such as a change to the checkout, a payment or shipping method connected, a link to another system, or product pages laid out differently. Sold as developer time by the hour, in blocks, and quoted before work starts. - [WordPress to Webflow migration service](https://wpministry.co/services/wordpress-to-webflow-migration/): We export a WordPress site's content and convert it for Webflow's CMS import, build the site in Webflow, copy the images and redirect every old address. For owners who have decided to leave WordPress. Quoted in writing after a free assessment. - [Wix SEO services](https://wpministry.co/services/wix-seo/): Search work on a Wix site, sold two ways. A one-time written audit in which each finding names the documentation it rests on, with the fixes done and tested again. Or hours each month against a written list. You are sold the work, not a ranking. - [Webflow to WordPress migration service](https://wpministry.co/services/webflow-to-wordpress-migration/): We carry your Webflow content into WordPress, rebuild the design, copy every image off Webflow's addresses, and redirect each old address to its new one. For site owners who have decided to leave Webflow. Quoted in writing after a free assessment. - [Webflow SEO services](https://wpministry.co/services/webflow-seo/): Search work on a Webflow site, sold two ways. A one-time written audit in which each finding names the documentation it rests on, with the fixes done and tested again. Or hours each month against a written list. You are sold the work, not a ranking. - [Squarespace SEO services](https://wpministry.co/services/squarespace-seo/): Search work on a Squarespace site, as a one-time written audit or as hours each month against a written list. Each finding names the documentation it rests on and says whether it is yours to change or Squarespace's. You are sold the work, not a ranking. - [Shopify SEO services](https://wpministry.co/services/shopify-seo/): Search work for a store on Shopify, sold as work. A one-time written audit with the fixes done and tested again, or hours each month against a written list. Each finding names the documentation it rests on and says when it is Shopify's to decide. No ranking is promised. - [Framer to WordPress migration service](https://wpministry.co/services/framer-to-wordpress-migration/): We rebuild your Framer site in WordPress, carry its content across, copy its images off Framer's servers, and redirect every old address to its new one. For site owners who have decided to leave Framer. Quoted in writing after a free assessment. - [Local SEO services](https://wpministry.co/services/local-seo/): Search work for a local business whose site is on WordPress, sold as work. We put the website's side in order, its details, its markup and its pages, and work inside your Google Business Profile as a manager you add and can remove. No place in the map results is promised. - [WooCommerce SEO](https://wpministry.co/services/woocommerce-seo/): Search work for a WooCommerce store, sold as work. We check what each product page tells Google, the extra addresses a store makes, and the Merchant Center feed, fix what is wrong on the store, and test each fix again. No ranking is promised. - [WordPress SEO audit](https://wpministry.co/services/wordpress-seo-audit/): A one-time, written audit of what stands between a WordPress or WooCommerce site and a search engine. Each finding names the documentation it rests on, the fixes on the WordPress side are done, and each fix is tested again. - [WordPress SEO services](https://wpministry.co/services/wordpress-seo/): Hours of search work on one WordPress or WooCommerce site each month, against a written list, with a report of what was done and tested. You are sold the work, not a ranking. Month to month. - [SEO for a new website](https://wpministry.co/services/seo-for-new-websites/): A one-time setup for a new or rebuilt WordPress site, so a search engine can find it from the first day and nothing built up by the old site is lost. Indexing, sitemap, Search Console and Bing, and redirects, each checked. - [AI search optimization](https://wpministry.co/services/ai-search-optimization/): A one-time check of whether AI assistants and Google's AI answers can reach a WordPress site, what Google's and Bing's own reports say they have done with it, and what to change. Also called GEO or AEO. No citation is promised. - [WordPress maintenance service](https://wpministry.co/services/wordpress-maintenance/): A monthly care plan that keeps one WordPress site updated, backed up, monitored and scanned, and restores it if an update breaks it. For site owners who would rather not do the upkeep themselves. - [WooCommerce to Shopify migration service](https://wpministry.co/services/woocommerce-to-shopify-migration/): We move a WooCommerce store's products, customers, past orders, pages, blog posts and redirects into Shopify by the routes it documents, onto a theme you choose, changed to fit your design if you ask. For store owners who have decided to leave WooCommerce. Quoted in writing after a free assessment. - [WordPress design and development](https://wpministry.co/services/design-development/): Design and build work on a WordPress site, from one landing page to a full redesign. There is no fixed package. A small job is sold as developer time by the hour, and a larger one gets a written quote. - [Custom WordPress development](https://wpministry.co/services/custom-development/): Work on a WordPress site that has to be written in code, such as a small plugin, a theme change or a link to another system. Sold as developer time by the hour, in blocks, and quoted before work starts. - [WordPress update service](https://wpministry.co/services/wordpress-updates/): Weekly updates to WordPress core, plugins and themes, checked afterward and rolled back if something breaks. Part of every care plan, not sold on its own. The Business and Store plans test updates on a staging copy first. - [WordPress support](https://wpministry.co/services/wordpress-support/): Help with a WordPress site when something breaks or needs a small change. On a care plan it is a set amount of time each month, 90 minutes on Care, 3 hours on Business and 5 hours on Store. Without a plan, a Quick Fix covers one issue on one site. - [WordPress migration service](https://wpministry.co/services/wordpress-migration/): We move one WordPress site from one host to another and test the copy on the new host before the DNS is changed. For site owners who are changing hosting and do not want to do the move themselves. - [WordPress backup service](https://wpministry.co/services/wordpress-backups/): Daily offsite backups of your WordPress site as part of a care plan, kept for 30 or 90 days, with a restore if an update breaks the site. Not sold on their own. For owners who want a recent copy stored away from their host. - [WooCommerce maintenance service](https://wpministry.co/services/woocommerce-maintenance/): The Store care plan for a WooCommerce shop. Updates are tested on a staging copy first, checkout and payment are tested after every update, order data is backed up more often, and 5 hours a month of fixes and edits are included. - [Wix to WordPress migration service](https://wpministry.co/services/wix-to-wordpress-migration/): We rebuild your Wix site in WordPress, carry its content across, and redirect every old Wix address to its new one. For site owners who have decided to leave Wix, which has no export for a whole site. Quoted in writing after a free assessment. - [WordPress website edits](https://wpministry.co/services/website-edits/): Small changes to your WordPress site, made for you. New text, a replaced image, a menu item, a form field. Edit time is part of the Care, Business and Store plans. A larger change, or a change with no plan, is quoted as developer time. - [Squarespace to WordPress migration service](https://wpministry.co/services/squarespace-to-wordpress-migration/): We move a Squarespace site to WordPress. The pages and posts that Squarespace exports are carried across, the rest is rebuilt, and each old address is redirected to its new one. For site owners who have decided to move and do not want to do it themselves. Quoted after a free assessment. - [Shopify to WooCommerce migration service](https://wpministry.co/services/shopify-to-woocommerce-migration/): We move a Shopify store to WooCommerce on WordPress. Products, customers, past orders and content are carried across, the design is rebuilt, and each old address is redirected to its new one. For store owners who have decided to move and do not want to do it themselves. - [One-time WordPress fix](https://wpministry.co/services/one-time-fix/): One WordPress problem fixed, with no plan to join. A Quick Fix covers one issue on one site, up to about an hour of work. An Emergency Fix is for a site that is down or a checkout that is broken. If we cannot fix it, you pay nothing. - [WordPress malware removal](https://wpministry.co/services/malware-removal/): A one-time clean-up for a hacked WordPress site. It covers the full clean-up, hardening, a blacklist removal request and a written report, with a 30-day re-clean guarantee. Malware cleanup is also part of the Care plan. - [Figma to WordPress service](https://wpministry.co/services/figma-to-wordpress/): We build a WordPress site from your Figma design. You get a theme made to the file, with each page layout in it set up as a WordPress page you can edit. For site owners and designers who have a finished design and need it built. A build, not a move, quoted after we have seen the file. - [WordPress consulting](https://wpministry.co/services/consulting/): Advice on a WordPress site, for when you need a decision or a plan and not a repair. A developer looks at your site or your plan and tells you what they find. Sold as developer time by the hour, in blocks, and quoted before any time is spent. ## Pages - [About WP Ministry](https://wpministry.co/about/): WP Ministry looks after WordPress sites and fixes them when they break, for a fixed price that is published. It is a US company with its operations team in Asia. This page says who we are, how the work is done and what we do not claim. - [White label WordPress maintenance for agencies](https://wpministry.co/white-label/): Our Essential care plan, delivered under your agency's brand. We do the updates, backups, monitoring and security scanning. The reports and the support address carry your name. For agencies with three or more client sites. ## Legal pages - [Terms of service](https://wpministry.co/legal/terms/): The terms on which WP Ministry sells care plans, one-time work and search work. What you pay, what you get, how to cancel, what we need from you, and what happens when something goes wrong. - [Privacy policy](https://wpministry.co/legal/privacy/): What wpministry.co collects when you visit, write to us, use a tool, join the referral program or become a customer. Why it is collected, which companies handle it, how long it is kept, and how to have it corrected or deleted. - [Cookies and what this site keeps in your browser](https://wpministry.co/legal/cookies/): This site sets no cookies of its own and keeps up to four small items in your browser. A yes to measurement loads Google Analytics, which sets two cookies, and Ahrefs Web Analytics, which Ahrefs says uses none. Nothing from another company loads before that. ## Tools - [WordPress error message and debug.log decoder](https://wpministry.co/tools/wordpress-error-decoder/): Paste an error message or lines from your log and see what each one means, which plugin or theme it points at, and what to do first. Read in your browser; nothing is sent. - [WordPress site health check](https://wpministry.co/tools/wordpress-site-health-check/): Give your site's address and see what one page shows a visitor: whether it answers, how it is secured, what search engines are told, and which WordPress, theme and plugins it shows. - [Is my WordPress site hacked? A check from outside](https://wpministry.co/tools/wordpress-hacked-site-check/): Give your site's address and see the signs of a break-in that show from outside: visitors from search sent somewhere else, links hidden in the page, code written to hide what it does. - [What is this site built with? Platform and theme detector](https://wpministry.co/tools/website-platform-detector/): Give any site's address and see the platform it runs on. For a WordPress site, also its theme's folder, its page builder and the plugins that show. - [WordPress salt and security key generator](https://wpministry.co/tools/wordpress-salt-generator/): Eight fresh keys and salts for wp-config.php, made in your browser. They are never sent anywhere. - [wp-config.php generator](https://wpministry.co/tools/wp-config-generator/): Answer a few questions and get a complete wp-config.php, built in your browser from WordPress's own sample file. - [.htaccess generator for WordPress](https://wpministry.co/tools/htaccess-generator/): Choose what you want the server to do and get a complete .htaccess: WordPress's own block, with redirects, closed files, headers and compression above it. Built in your browser. - [nginx server block generator for WordPress](https://wpministry.co/tools/nginx-config-generator/): Answer a few questions and get an nginx server block for a WordPress site, built on the rules in WordPress's own nginx documentation. Built in your browser. - [WP-CLI command builder](https://wpministry.co/tools/wp-cli-command-builder/): Choose a job, fill in what it needs, and copy the WP-CLI command with its flags in place: updates, backups, getting back into a broken site, replacing an address. Built in your browser. - [HTTP status and redirect checker](https://wpministry.co/tools/redirect-checker/): See what an address answers and every redirect on the way: each hop, its status code and where it sends you next. - [Can this page be indexed? A check from outside](https://wpministry.co/tools/page-indexing-check/): Give a page's address and see what could keep it out of a search engine: the status it answers with, a rule in robots.txt, a noindex on the page or in its headers, and the address it names as its own. - [Sitemap checker for WordPress sites](https://wpministry.co/tools/sitemap-checker/): Give your site's address and see which sitemap it has, whether robots.txt points to it, whether what answers there is a sitemap at all, and how many addresses it lists. - [Are AI crawlers allowed on my site? A robots.txt check](https://wpministry.co/tools/ai-crawler-access-check/): Give your site's address and see what its robots.txt tells each AI crawler by name: the ones behind ChatGPT's, Claude's and Perplexity's search, the fetches made for their users, and the ones that collect pages for training. - [robots.txt tester: does this rule block this address?](https://wpministry.co/tools/robots-txt-tester/): Paste a robots.txt, give an address and choose a crawler, and see whether it is allowed and which line decides. Worked out in your browser; nothing is sent. - [robots.txt generator for WordPress](https://wpministry.co/tools/robots-txt-generator/): Build a robots.txt that starts from WordPress's own rules, names your sitemap, and keeps out the kinds of AI crawler you choose. Made in your browser; nothing is sent. - [What is my product page telling Google? A product data check](https://wpministry.co/tools/product-structured-data-check/): Give a product page's address and see the product data it carries for search engines, set beside what Google requires for a merchant listing and what it only recommends: name, image, price, stock, brand and identifiers. - [LocalBusiness schema generator for WordPress](https://wpministry.co/tools/local-business-schema-generator/): Fill in a business's name, address, phone and hours and get its LocalBusiness structured data, as a small WordPress plugin file or as the block alone, with the properties Google documents. Made in your browser; nothing is sent. - [Redirect map builder](https://wpministry.co/tools/redirect-map-builder/): Turn a list of old and new addresses into 301 redirect rules for Apache, nginx or Shopify, with chains, loops and duplicates pointed out. Built in your browser. - [WordPress and PHP end-of-life dates: check your version](https://wpministry.co/tools/wordpress-php-end-of-life-checker/): See whether your PHP and WordPress versions still get security fixes, and until when, from php.net's and WordPress.org's own records. - [Website downtime cost calculator](https://wpministry.co/tools/downtime-cost-calculator/): What an outage costs in sales not made, worked out from your own revenue and the hours the site was down. - [WooCommerce failed orders calculator](https://wpministry.co/tools/woocommerce-failed-orders-calculator/): What your store did not collect from orders that were started and never paid, worked out from your own order counts and average order value. - [Care plan margin calculator for agencies](https://wpministry.co/tools/care-plan-margin-calculator/): What your agency keeps each month from the care plans it sells: what clients pay, less what the work costs you, for one site and for all of them. - [WordPress maintenance cost calculator](https://wpministry.co/tools/wordpress-maintenance-cost-calculator/): What looking after your site yourself costs each month in time and tools, beside the price of a care plan. ## About the service - [Pricing](https://wpministry.co/pricing/): Every care plan and fixed-price fix, with what each includes. - [WordPress services](https://wpministry.co/services/): Care plans by the month, fixes at a fixed price, and project work by quote. - [Free diagnosis](https://wpministry.co/free-diagnosis/): Tell us what a WordPress site is doing and get the cause and a fixed quote. The diagnosis is free. - [SEO services](https://wpministry.co/seo/): SEO for a site on WordPress, WooCommerce or another platform, sold as work: an audit with the fixes done and tested, or hours each month against a written list. - [Platform migrations](https://wpministry.co/migrations/): Moving a site or a store between platforms, toward WordPress or away from it: what moves by itself, what is rebuilt, and how old addresses are redirected. - [Free migration assessment](https://wpministry.co/migrations/assessment/): Say what a site is on and where it should go, and get a written list of what moves and a fixed quote. - [Referral program](https://wpministry.co/referral-program/): What a friend gets, what a customer or a partner earns for sending them, and the terms. - [WordPress error fixes](https://wpministry.co/errors/): What each WordPress error means, what causes it, and a fix for each cause. - [WordPress guides](https://wpministry.co/blog/): How to look after a WordPress site yourself. - [Free WordPress tools](https://wpministry.co/tools/): Generators, calculators and checks for WordPress site owners. - [WordPress topics](https://wpministry.co/topics/): Every subject the site covers, each with its error fixes, guides, checklists and tools in one place. - [What WordPress work costs](https://wpministry.co/cost/): What decides the cost of looking after, repairing, speeding up or moving a WordPress site. - [Contact](https://wpministry.co/contact/): Write to WP Ministry about a plan, a quote or anything else.