# 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 - [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. - [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. - [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. - [What "Discourage search engines from indexing this site" does in WordPress, and how to turn it off](https://wpministry.co/blog/discourage-search-engines-wordpress/): The box under Settings, then Reading, puts a noindex, nofollow robots tag on every page and switches off the sitemap at /wp-sitemap.xml. It writes nothing into robots.txt. Untick it and save, or run wp option update blog_public 1, then read a page's source to confirm the tag is gone. - [How to change WordPress permalinks without breaking your old links](https://wpministry.co/blog/change-wordpress-permalinks-safely/): WordPress keeps no record of a permalink structure you leave. After a change, some old post addresses are forwarded by a guess and the rest answer 404. A move from a dated structure to Post name answers 404. Add one 301 rule for the old pattern, then check an old address. - [How to block AI crawlers on WordPress, or let them in: robots.txt, Cloudflare, hosts and plugins](https://wpministry.co/blog/block-or-allow-ai-crawlers-wordpress/): AI companies send different crawlers for training, for search and for fetching a page someone asked about. A WordPress site can refuse one kind and admit the others in robots.txt. A CDN, a host or a plugin can also block them where robots.txt does not show it. - [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 move from WordPress.com to self-hosted WordPress](https://wpministry.co/blog/wordpress-com-to-self-hosted/): WordPress.com is a hosting service that runs WordPress for you. Self-hosted WordPress is the same software on hosting you rent. Moving is an export, an import and a redirect of the old address. Paid WordPress.com plans now install plugins, so check first that you need to move. - [Why the WooCommerce dashboard is slow, and how to find the cause](https://wpministry.co/blog/woocommerce-slow-admin/): The WooCommerce dashboard is built by the server on every click, with no page cache to help. Measure one slow screen with Query Monitor, then check order storage, the Scheduled Actions queue, the options table, Analytics, the object cache, plugins and the server, in that order. - [WooCommerce database update required: what the notice means and how to finish it safely](https://wpministry.co/blog/woocommerce-database-update-required/): WooCommerce's files were updated and its tables and stored settings have to be brought to the same version. Back up the database, start the update once and let it finish in the background. Since WooCommerce 9.9 it starts by itself, so the backup belongs before the plugin update. - [How to update WooCommerce safely: before, on staging, on the live store, and if it breaks](https://wpministry.co/blog/update-woocommerce-safely/): Read the release notes, check your extensions and template copies, and back up. Update a staging copy and place a test order there. On the live store, close the checkout, back up again, update, test, then reopen. With the checkout closed, going back costs no orders. - [Slow WordPress admin: how to find the cause and fix it](https://wpministry.co/blog/slow-wordpress-admin/): The dashboard is never served from a page cache, so every screen waits on PHP and the database. Time one slow screen, read it in Query Monitor, then check outside requests, database queries, the object cache, PHP, Heartbeat, WP-Cron and the host, in that order. - [Should you outsource WordPress maintenance? A decision guide for agencies and freelancers](https://wpministry.co/blog/outsource-wordpress-maintenance/): Outsource WordPress maintenance when the work is routine, repeats across many client sites and does not need what you know about the client. Keep the relationship, the decisions about each site and anything the client expects from you in person. - [How to move WordPress to a new domain and keep your links and search traffic](https://wpministry.co/blog/move-wordpress-to-new-domain/): A domain move is four jobs. Make the site answer at the new name, rewrite the old name wherever it is stored, redirect every old address to the same path with a 301, and tell search engines. Keep the old domain registered, because the redirect has to stay for a long time. - [How to migrate a WordPress site to a new host without downtime](https://wpministry.co/blog/migrate-wordpress-to-new-host/): Moving WordPress to a new host is a copy of two things, the files and the database, a test of that copy before any visitor is sent to it, and one DNS change. The old site keeps serving visitors until the new one is proven. - [How to migrate a website without losing SEO: what Google and Bing document](https://wpministry.co/blog/migrate-without-losing-seo/): Rankings are lost in a move when addresses change and nothing tells search engines where each one went, or when a page's content does not arrive. Redirect every old address to its nearest equivalent with a 301, carry the content across, and expect a dip while the site is recrawled. - [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. - [Locked out of WordPress admin: find which lockout you have and get back in](https://wpministry.co/blog/locked-out-of-wordpress-admin/): What the login screen shows tells you which lockout you have. A refused password, a missing reset email, a blocked address, a lost second step, a moved login page and a missing administrator account each have their own way back in. Find yours in the table, then follow that fix. ## Error fixes - ["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 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 "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 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. - [How to fix "Allowed memory size exhausted" in WordPress](https://wpministry.co/errors/allowed-memory-size-exhausted/): A page needed more memory than PHP is allowed to use, so PHP stopped it. Raising WordPress's memory limit in wp-config.php clears it on most hosts. The error message itself names the file that asked for too much, which tells you what to look at if it comes back. - [How to fix the 500 Internal Server Error in WordPress](https://wpministry.co/errors/500-internal-server-error/): A 500 error is the web server saying something went wrong without saying what. On a WordPress site the two usual causes are a damaged .htaccess file and a PHP error in a plugin or theme. Replacing .htaccess with WordPress's standard one takes two minutes and settles which it is. - [How to fix 404 errors on WordPress posts and pages that exist](https://wpministry.co/errors/404-not-found/): When posts and pages that exist in WordPress answer "404 Not Found", the content is fine and its addresses are not reaching it. Saving the permalink settings again rebuilds WordPress's list of addresses. If that changes nothing, .htaccess has lost its WordPress rules. - [How to fix the 403 Forbidden error in WordPress](https://wpministry.co/errors/403-forbidden/): A 403 means the server understood the request and refused it. On a WordPress site the refusal comes from a rule in .htaccess, a security plugin, file permissions or the host's firewall. Who is refused, and on which pages, tells you which one to look at. ## Glossary - [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 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 - [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 - [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 - [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 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. The Business plan tests updates on a staging copy first. - [WordPress support](https://wpministry.co/services/wordpress-support/): Help with your WordPress site when something breaks or needs changing. On a care plan it comes as a set amount of time each month. Without a plan, you can buy a single fix. - [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 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 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. - [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. For owners who want a recent copy stored away from their host. - [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 a Shopify store, by the import routes Shopify documents. For store owners who have decided to leave WooCommerce and have a Shopify theme in mind. - [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 leaving Wix, which has no export for a whole site. - [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 and Business plans, and larger changes are 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. - [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. For site owners whose pages have become slow and who want to see what changed. - [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. 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. - [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 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 consulting](https://wpministry.co/services/consulting/): Advice on a WordPress site, for when you need a decision or a plan and not a repair. Sold as developer time by the hour, in blocks, and quoted before any time is spent. ## Pages - [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. It keeps up to four small items in your browser's storage, one only after a yes to measurement and one only if you ask us to remember a referral code. A yes also loads Google Analytics, which sets two cookies. 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 checker](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 for WordPress sites](https://wpministry.co/seo/): SEO for a WordPress or WooCommerce site, 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: 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.