Glossary
Website terms, in plain English.
Every technical word our field guides use, from A records to WCAG: what it means, why it matters when something breaks, and what people often get wrong about it.
0 to 9
- .htaccess
A per-folder configuration file read by Apache and LiteSpeed for redirects, rewrites and access rules.
Also called: htaccess file
.htaccess is a hidden text file (its name starts with a dot) that Apache and LiteSpeed read for every request in that folder and its subfolders. WordPress writes its permalink rules between
# BEGIN WordPressand# END WordPressmarkers, and plugins add their own blocks.Why it matters: one typo or an unsupported directive causes a 500 error for the whole site. Malware also hides redirects in
.htaccessfiles, sometimes only for visitors arriving from search engines or on mobile.Example: the default WordPress block for a site in the web root is:
RewriteEngine OnRewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]RewriteBase /RewriteRule ^index\.php$ - [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . /index.php [L]
Common confusion: Nginx ignores
.htaccessentirely. FTP clients hide dotfiles by default, so turn on "show hidden files" before deciding it does not exist.- 3D Secure
A card payment check where the customer's bank confirms it is really them, often with an app prompt or a one-time code.
Also called: 3DS, 3DS2, 3-D Secure
3D Secure (EMV 3-D Secure, often written 3DS or 3DS2) adds a step to an online card payment in which the card issuer authenticates the cardholder. The customer may approve the payment in their banking app or type a code, or the bank may approve it silently based on risk data.
Why it matters: it stops many payments made with stolen card numbers, which makes it one of the main defenses against card testing. In the EEA and the UK, Strong Customer Authentication rules mean many card payments need it. Payment gateways usually let you require it on more payments through their fraud or Radar-style rules.
Example: a WooCommerce customer sees a popup from their bank after pressing Place order. If that popup is blocked by a script optimization or a cached checkout, the payment fails with an authentication error.
Common confusion: 3D Secure is run by the card issuer, not by your site, so you cannot style it or skip it for a customer whose bank demands it. For authenticated payments, fraud chargeback liability generally moves to the issuer, but the rules depend on the card network and gateway.
- 301 redirect
A permanent redirect that tells browsers and search engines a URL has moved for good to a new address.
Also called: 301, 301 Moved Permanently, permanent redirect
A 301 Moved Permanently response sends the visitor to the URL in the
Locationheader and tells search engines to transfer the old URL’s standing to the new one. It is the right tool for HTTP to HTTPS, www to non-www, domain changes and renamed pages.Why it matters: browsers cache 301s aggressively, sometimes indefinitely. A wrong 301 (for example to a staging domain or into a loop) can keep affecting visitors after you fix the server, until they clear their cache.
Example: in
.htaccesson Apache or LiteSpeed,Redirect 301 /OLD-PAGE/ https://YOURDOMAIN.COM/NEW-PAGE/, where OLD-PAGE and NEW-PAGE are the paths. Test withcurl -sIor a fresh private window, not a browser that already cached an old result.Common confusion: historically browsers could change a POST into a GET when following a 301.
308 Permanent Redirectis the version that guarantees the method and body are kept, which matters for APIs and forms.- 302 redirect
A temporary redirect that sends visitors elsewhere for now while telling search engines to keep the original URL.
Also called: 302, 302 Found, temporary redirect
A 302 Found response points to a different URL temporarily. Search engines generally keep the original URL indexed, and browsers do not cache it as strongly as a 301.
Why it matters: plugins, maintenance pages and login flows use 302s. A 302 left in place by accident on a permanent move slows search engines in consolidating signals, though Google says it treats a long-lived 302 more like a permanent move over time.
Example:
curl -sI https://YOURDOMAIN.COM/showingHTTP/2 302and alocation:header to a login or maintenance page means something is intercepting the home page. YOURDOMAIN.COM is your domain.Common confusion:
307 Temporary Redirectis the strict version that keeps the request method. In WordPress,wp_redirect()defaults to 302, so plugin redirects are often temporary unless the code passes 301.- 404 Not Found
The status code for a page the server cannot find, whether it never existed or was moved without a redirect.
Also called: 404, 404 error
A 404 Not Found response means the server has nothing at that URL. It is normal for mistyped addresses. It is a problem when real pages, images or scripts start returning it.
Why it matters: a sudden wave of 404s after a migration or permalink change usually means rewrite rules are missing (for example
.htaccesswas not copied, or Nginx lacks the WordPresstry_filesrule). If every page except the home page is 404, that is the giveaway.Example: in WordPress, visit Settings, Permalinks and click Save Changes to regenerate rewrite rules, or run
wp rewrite flushwith WP-CLI. Then retest withcurl -sI https://YOURDOMAIN.COM/SOME-POST/, where SOME-POST is a real post path.Common confusion: 404s are not an SEO penalty by themselves. Redirect moved pages to their new home, but do not redirect every missing URL to the home page; search engines treat that as a soft 404.
- 410 Gone
A status code saying a page was removed on purpose and will not come back, so search engines can drop it faster.
Also called: 410
410 Gone is a stronger statement than 404: the resource existed and has been deliberately removed. Search engines treat both as "not here", but a 410 can be dropped from the index a little sooner.
Why it matters: after a hack that injected thousands of spam URLs, returning 410 for those URL patterns is a clean way to tell search engines they are permanently gone while you clean up.
Example: in
.htaccess,RewriteRule ^SPAM-PATTERN/ - [G]returns 410 for any URL starting with SPAM-PATTERN, where SPAM-PATTERN is the spam path prefix. Test withcurl -sIbefore relying on it.Common confusion: do not use 410 for pages that moved; use a 301 to the new location. A 410 on a real page removes it from search.
- 500 Internal Server Error
A generic server-side failure, most often a PHP fatal error, a bad .htaccess line or memory exhaustion.
Also called: HTTP 500, 500 error
500 Internal Server Error means the server hit an error it could not handle while building the response. It deliberately says nothing specific to visitors; the details are in the logs.
Common causes on WordPress: a PHP fatal error from a plugin or theme update, a PHP version change the code does not support, an invalid directive in
.htaccess, exhaustedmemory_limit, or wrong file permissions on some hosts.Example: read the newest lines of the error log, for example
tail -n 50 ~/logs/error.log(the path varies by host), or enableWP_DEBUG_LOGand readwp-content/debug.log. If the error started after a change, undo that change first.Common confusion: WordPress recovery mode often catches PHP fatals and shows "There has been a critical error on this website" instead of a bare 500. It is the same class of problem, and it emails the admin a recovery link.
- 502 Bad Gateway
A proxy or front web server got no valid response from the application behind it, often PHP-FPM or the origin server.
Also called: 502, 502 error
502 Bad Gateway comes from a server acting as a gateway or proxy (Nginx in front of PHP-FPM, a CDN in front of your origin, a load balancer) when the next server up the line returns garbage, closes the connection or refuses it.
Common causes: PHP-FPM is stopped, crashed or out of workers; the PHP process died mid-request (segfault, memory kill); the origin server is down or blocking the CDN’s IP addresses; or a firewall is dropping the proxy’s requests.
Example: if the 502 page is branded by your CDN, the CDN could not reach your origin. Test the origin directly with
curl -sI --resolve YOURDOMAIN.COM:443:ORIGIN.IP https://YOURDOMAIN.COM/, where ORIGIN.IP is your server’s IP. On the server, check the PHP-FPM log for "server reached pm.max_children".Common confusion: a 502 is not a DNS error and usually not a WordPress setting. It is a connection problem between two servers, so look at the layer behind the one that answered.
- 504 Gateway Timeout
A proxy or front server waited too long for the application behind it and gave up.
Also called: 504, 504 error
504 Gateway Timeout means a gateway (Nginx, a CDN, a load balancer) passed the request on and did not get an answer within its timeout. The backend may still be working on it.
Common causes: slow database queries, a plugin waiting on a slow external API, a large import or backup running in a web request, or a server overloaded enough that PHP cannot start the request in time.
Example: compare the proxy timeout (for example Nginx
fastcgi_read_timeout) with PHP’smax_execution_time. Then find the slow part: the slow query log, a profiler, or the timing of the request in the access log.Common confusion: raising timeouts hides the symptom. A request that takes 90 seconds is a problem for visitors even if it no longer errors. Move long tasks to WP-CLI, cron or a background queue.
A
- Access log
A log of every request the web server handled, with the IP, time, URL, status code, size and user agent.
Also called: access_log
An access log records one line per request. The common "combined" format includes the client IP, timestamp, request line, status code, response size, referrer and user agent.
Why it matters: it shows what actually hit the server during an incident: bot floods, brute-force attempts on
wp-login.phporxmlrpc.php, the request that preceded an error, or whether a CDN is passing traffic through.Example:
grep "POST /wp-login.php" ACCESS.LOG | awk '{print $1}' | sort | uniq -c | sort -rn | headshows which IPs are hammering the login page, where ACCESS.LOG is the log path.Common confusion: behind a CDN or proxy, the IP in the log may be the proxy’s unless the server is configured to log the forwarded visitor IP. Cached pages served by a CDN never reach your access log at all.
- ACME
The standard protocol that lets software request, validate and renew TLS certificates automatically.
Also called: ACME protocol, ACME client
ACME (Automatic Certificate Management Environment, RFC 8555) defines how a client proves control of a domain to a CA and collects a certificate. Let’s Encrypt and several other CAs support it. Clients include Certbot, acme.sh, and the built-in tools in control panels, web servers and CDNs.
Why it matters: when automatic renewal fails, the ACME client’s log names the failing step: usually a challenge that could not be completed (HTTP-01 or DNS-01), an account problem, or a rate limit.
Example:
certbot renew --dry-runruns a full test renewal against the staging environment. Common log lines include "Invalid response from http://YOURDOMAIN.COM/.well-known/acme-challenge/TOKEN", where TOKEN is the challenge file name, meaning the CA reached something other than the expected file.Common confusion: ACME is the protocol, not a CA. Two tools both trying to manage the same certificate (for example the host panel and your own Certbot) can fight each other.
- Action Scheduler
A background job queue library used by WooCommerce and many plugins, stored in its own database tables.
Also called: WooCommerce Action Scheduler, scheduled actions
Action Scheduler queues tasks such as sending webhooks, syncing orders, processing subscriptions and sending emails. It stores actions in tables like
wp_actionscheduler_actionsand runs them in batches, triggered by WP-Cron and async requests.Why it matters: if WP-Cron is not running, actions pile up as "past-due" and renewals, emails and syncs stop. Failed or completed actions can also grow to millions of rows and slow the database.
Example: in WooCommerce, Tools, Scheduled Actions (or Status, Scheduled Actions) lists pending, failed and past-due actions with error messages.
wp action-scheduler runprocesses the queue from the command line.Common confusion: it is a shared library, so several plugins may bundle it, and the newest bundled version is the one loaded.
- admin-ajax.php
The WordPress endpoint that handles background requests from the admin and many front-end plugin features.
Also called: admin-ajax
admin-ajax.php in
/wp-admin/receives AJAX requests and runs the code hooked to the requestedaction. Heartbeat, many form plugins, filters, carts and live search use it, including on the public site.Why it matters: every call loads WordPress fully and is not page cached, so a plugin calling it on every page view, or a bot hammering it, uses PHP workers fast. Slow or failing calls break forms and carts without an obvious error on screen.
Example: in the access log, count calls with
grep -c "admin-ajax.php" ACCESS.LOG, where ACCESS.LOG is the log path. In the browser’s Network tab, the request payload shows whichactioneach call uses, which points to the plugin.Common confusion: blocking admin-ajax.php to stop load breaks front-end features. Find and fix the action that is being abused.
- Apache
A long-standing open source web server that reads per-folder .htaccess files for rewrites and access rules.
Also called: Apache HTTP Server, httpd
Apache HTTP Server is a widely deployed web server. It supports
.htaccessfiles, which let each folder carry its own rewrite rules, redirects and access controls without a server restart. WordPress’s pretty permalinks rely onmod_rewriterules in.htaccesson Apache.Why it matters: a single invalid line in
.htaccesstakes the whole site down with a 500 error. The server error log usually names the bad directive.Example: if a 500 started after a plugin changed
.htaccess, rename it to.htaccess.bakto test, then regenerate a clean one by saving Settings, Permalinks in WordPress.Common confusion: many hosts that "support .htaccess" actually run LiteSpeed, or Nginx in front of Apache. Rules that depend on specific Apache modules may behave differently there.
- Apex domain
The bare domain with nothing in front of it, like example.com rather than www.example.com.
Also called: root domain, naked domain, bare domain, zone apex
The apex (also called the root, naked or bare domain) is the top of your DNS zone:
example.comitself. It must hold the zone’s SOA and NS records, so it cannot be a plain CNAME.Why it matters: CDNs and site platforms that want a CNAME can be awkward at the apex. If only www is set up, people typing the bare domain get an error. Certificates also need both names listed, or one of them shows a security warning.
Example: the apex needs an A record (or an ALIAS/flattened CNAME from your DNS provider), while www can use
www CNAME example.com.. Pick one as the canonical version and 301 redirect the other to it.Common confusion: "root domain" here is not the DNS root zone (the dot at the very top of DNS). It just means your domain without a subdomain.
- Application passwords
Revocable per-app passwords WordPress issues for API access, separate from the user's main login password.
Also called: application password, app passwords
Application passwords (in core since WordPress 5.6) let a user create a password for one integration, used with HTTP Basic authentication against the REST API and XML-RPC. Each can be revoked separately in the user’s profile.
Why it matters: they bypass two-factor login prompts by design, so after a compromise attackers sometimes add one to keep access. Changing the main password does not revoke them.
Example:
wp user application-password list USERlists them andwp user application-password delete USER UUIDrevokes one, where USER is the username or ID and UUID is the password’s ID from the list.Common confusion: they need HTTPS and the
Authorizationheader to reach PHP; some server setups strip it, which makes valid credentials fail.- A record
A DNS record that points a name at an IPv4 address; its sibling, the AAAA record, points a name at an IPv6 address.
Also called: AAAA record, AAAA, address record, quad-A record
An A record maps a hostname to an IPv4 address such as
203.0.113.10. An AAAA record ("quad-A") does the same for an IPv6 address such as2001:db8::10. Browsers look these up before they can connect to your server.When something breaks: if the A record still points at an old server after a migration, visitors land on the old site or an error. A stale or wrong AAAA record is sneakier: visitors with IPv6 connect to the wrong place while IPv4 users are fine, so the site works for you and fails for a customer.
Example:
dig YOURDOMAIN.COM A +shortanddig YOURDOMAIN.COM AAAA +short, where YOURDOMAIN.COM is your domain. If your new host gave you only an IPv4 address, delete any leftover AAAA record from the old host.Common confusion: one name can have several A records (round robin), and the apex (example.com) and www are separate names that each need their own record or a CNAME.
- ARIA
HTML attributes that tell assistive technology what an element is, what state it is in, or what it is called.
Also called: WAI-ARIA, aria-label, aria-hidden
ARIA (WAI-ARIA, from the W3C) is a set of attributes such as
role,aria-label,aria-expandedandaria-hidden. Screen readers read these to describe custom widgets that plain HTML does not cover.Why it matters: a menu button with no name, or a dropdown that never reports
aria-expanded="true", is confusing or unusable for a screen reader user, and automated accessibility scanners flag it.Example: an icon-only button needs a name:
<button aria-label="Open menu">. A decorative icon inside a labeled link can takearia-hidden="true"so it is not read twice.Common confusion: more ARIA is not better. The first rule in the W3C guidance is to use a native element (a real
<button>or<a href>) when one exists. Wrong ARIA, such asaria-hidden="true"on content people need, makes a page worse than no ARIA.- Authentication keys and salts
Random secret values in wp-config.php that WordPress uses to sign login cookies and nonces.
Also called: WordPress salts, AUTH_KEY, wp-config salts
The eight keys and salts (
AUTH_KEY,SECURE_AUTH_KEY,LOGGED_IN_KEY,NONCE_KEYand the matching_SALTconstants) are long random strings. WordPress uses them to sign and verify login cookies and nonces.Why it matters: changing them instantly logs out every user everywhere, because existing cookies no longer verify. That makes rotating them a standard step after a hack or a suspected stolen session.
Example:
wp config shuffle-saltsreplaces them with WP-CLI. You can also generate a fresh set from the official generator athttps://api.wordpress.org/secret-key/1.1/salt/and paste it over the old lines.Common confusion: salts do not change passwords. After a compromise you still need to reset passwords, remove unknown admin users and revoke application passwords.
- Autodiscover
The lookup a mail app such as Outlook uses to find your email server settings automatically from your address.
Also called: Autoconfig, Autodiscover record
Autodiscover is the mechanism Outlook and other Microsoft clients use to find mail server settings from an email address. It looks up addresses such as
autodiscover.YOURDOMAIN.COM, where YOURDOMAIN.COM is your domain. Thunderbird uses a similar system called Autoconfig.Why it matters: if the Autodiscover record points at an old host after you move email, Outlook keeps finding the wrong server, asks for a password over and over, or sets the account up with the wrong ports.
Example: for Microsoft 365, the usual record is a CNAME from
autodiscovertoautodiscover.outlook.com. Check what yours points at withdig +short autodiscover.YOURDOMAIN.COM.Common confusion: Autodiscover only helps apps find settings. It does not deliver mail; MX records do that. A wrong Autodiscover record breaks setup, not delivery.
- Autoload
The flag that makes a wp_options row load into memory on every page request, whether it is needed or not.
Also called: autoloaded options, autoloaded data
Each row in
wp_optionshas anautoloadvalue. Autoloaded options are fetched in one query at the start of every request. Older rows useyesandno; since WordPress 6.6 core also useson,off,auto,auto-onandauto-off, and large options added without an explicit choice are not autoloaded.Why it matters: plugins that autoload large blobs (logs, caches, settings for removed plugins) make every uncached request slower and can push memory over the limit. Site Health warns when autoloaded data is large.
Example:
wp db query "SELECT option_name, LENGTH(option_value) AS bytes FROM wp_options WHERE autoload IN ('yes','on','auto-on','auto') ORDER BY bytes DESC LIMIT 20;"lists the biggest autoloaded options. Replacewp_if your table prefix differs.Common confusion: deleting options blindly can break active plugins. Identify which plugin owns an option before removing it or switching its autoload off.
- AVIF
A newer image format that often compresses even smaller than WebP, supported by current major browsers.
Also called: AVIF image
AVIF is based on the AV1 video codec. It often gives smaller files than WebP at similar quality, especially for photos, and supports transparency and HDR. WordPress supports AVIF uploads since version 6.5, if the server’s image library supports it.
Why it matters: it can shrink hero images further, but encoding is slower and some server image libraries cannot process it, so thumbnails may fail to generate.
Example: serve AVIF with a fallback using
<picture>with an AVIF<source type="image/avif">, a WebP source, then a JPEG<img>. Site Health, Info, Media Handling shows whether the server’s image library supports AVIF.Common confusion: smaller files are not automatically faster to decode on low-end devices. Measure LCP rather than assuming.
B
- Backdoor
Hidden code or access left by an attacker so they can get back in after the visible damage is cleaned up.
Also called: web shell, webshell
A backdoor is any way an attacker keeps access: a PHP web shell that runs commands from the browser, a snippet added to a theme’s
functions.php, a hidden admin user, an application password, an extra SSH key, or a scheduled task that reinstalls malware.Why it matters: reinfection days after a cleanup almost always means a backdoor was missed. Removing the visible spam while a backdoor remains is like changing the wallpaper and leaving the door open.
Example: list admins with
wp user list --role=administrator, checkwp cron event listfor unfamiliar hooks, and search PHP files for patterns likeeval(,base64_decode(andgzinflate(. Legitimate code uses some of these, so review matches rather than deleting blindly.Common confusion: after a compromise, change every password and key that could have been read: WordPress users, database, hosting, SFTP, SSH keys, API keys and salts.
- Backscatter
Bounce messages you receive for spam you did not send, because a spammer forged your address as the sender.
Also called: bounce backscatter
Backscatter happens when spammers put your address in the envelope sender and receiving servers accept the message, then later send a bounce to the forged address: you.
Why it matters: a sudden flood of bounce messages does not prove your account was hacked, and it can fill a mailbox. It also hints that your domain lacks DMARC enforcement, which would make many receivers reject forged mail outright.
Example: compare the bounced message’s headers with your own sending: if the original came from IPs that are not yours and did not pass SPF or DKIM for your domain, it is backscatter. Publishing SPF, DKIM and DMARC
p=rejectreduces it over time.Common confusion: servers that accept mail first and bounce it later cause backscatter. Well-run mail servers reject during the SMTP conversation instead, so no bounce goes to a forged address.
- Beg bounty
An unsolicited email reporting a minor or automated "vulnerability" on your site in the hope you will pay a reward.
Also called: beg bounties, beg bounty hunters
A beg bounty is a message from someone you never hired, saying they found a security problem on your website and asking whether you pay bug bounties. The findings usually come from automated scanners: a missing DMARC record, a missing security header, a visible version number.
Why it matters: these messages are sent in bulk and can be alarming. Most describe low-risk issues, and some are a lead-in to a sales pitch or pressure for payment.
Example: "Your site is vulnerable to clickjacking because X-Frame-Options is not set. What is your bounty?" Check the claim yourself, fix it if it is real and cheap, and reply once politely or not at all.
Common confusion: not every unsolicited report is a beg bounty. A specific, reproducible report about a plugin version you run deserves attention. Publishing a
security.txtfile tells genuine researchers how to reach you and whether you offer rewards.- BIMI
A DNS record that lets supporting inboxes show your logo next to authenticated email from your domain.
Also called: Brand Indicators for Message Identification
BIMI (Brand Indicators for Message Identification) is a TXT record at
default._bimi.YOURDOMAIN.COM, where YOURDOMAIN.COM is your domain, pointing to an SVG logo in a restricted profile (SVG Tiny PS) and, for some providers, a mark certificate.Why it matters: it only works on top of strong authentication. Your domain needs DMARC at enforcement (
quarantineorreject), and providers such as Gmail require a Verified Mark Certificate or Common Mark Certificate before showing the logo.Example:
v=BIMI1; l=https://YOURDOMAIN.COM/LOGO.svg; a=https://YOURDOMAIN.COM/CERT.pem, where LOGO.svg is the logo file and CERT.pem the mark certificate.Common confusion: BIMI does not improve deliverability by itself and is never an emergency fix. If mail is going to spam, fix SPF, DKIM and DMARC first.
- Block theme
A WordPress theme built from block templates and theme.json, edited visually in the Site Editor.
Also called: FSE theme, block-based theme, Site Editor, Full Site Editing
A block theme uses HTML block templates in
templates/andparts/plus atheme.jsonfile, instead of PHP template files. Its header, footer and templates are editable in the Site Editor.Why it matters: changes made in the Site Editor are saved to the database as
wp_templateandwp_template_partposts that override the theme’s files. That is why editing the theme files "does nothing", and why a migration that misses those posts loses the design.Example: Appearance, Editor, Templates shows which templates have been customized; resetting a template removes the database copy and restores the theme file.
The Site Editor (Appearance, Editor, added in WordPress 5.9) is where block theme templates, template parts, navigation and global styles are edited. Saved changes apply site-wide at once, and each template has revisions and a reset option for rolling back a bad change.
Common confusion: classic themes with some block support are not block themes. A block theme is identified by having
templates/index.html.- Block validation
The block editor's check that saved block HTML matches what the block would generate; mismatches show as errors.
Also called: This block contains unexpected or invalid content, block recovery
When the editor loads a post, each block’s saved markup is compared with what the block’s code expects. If they differ, block validation fails and the editor shows "This block contains unexpected or invalid content" with options to attempt recovery or convert to HTML.
Why it matters: it often appears after a plugin that registers blocks was updated or removed, after a search-replace changed markup, or after content was edited outside the editor. The front end usually still renders the saved HTML correctly.
Example: try "Attempt recovery" on one block first and compare with the original before saving. If many posts are affected after an update, check the plugin’s changelog for deprecation fixes before mass-editing.
Common confusion: this is an editor warning, not proof the live site is broken. Saving the post without care can lose attributes the old markup held.
- Bot
An automated program that requests web pages, from search engine crawlers to scrapers, spammers and attack tools.
Also called: web bot, bad bot, bad bots
A bot is any non-human client. Good bots include search engine crawlers and uptime monitors. Bad bots scrape content, stuff credentials, spam forms, probe for vulnerable plugins, or flood a site with requests.
Why it matters: bot traffic often explains a sudden slowdown or resource limit hit. Bots typically request uncached URLs (search, cart, random query strings,
xmlrpc.php), which hit PHP and the database directly.Example:
awk '{print $1}' ACCESS.LOG | sort | uniq -c | sort -rn | headlists the busiest IPs in an access log, where ACCESS.LOG is the log file path. Check what those IPs request and their user agents before blocking.Common confusion: blocking a whole country or every unknown user agent also blocks real people and useful services. Prefer challenges and rate limits at the CDN or firewall, and verify search engine bots by reverse DNS before trusting their user agent.
- Bounce
An email that could not be delivered and came back; soft bounces are temporary, hard bounces are permanent.
Also called: bounced email, soft bounce, hard bounce, email bounce
A bounce is a delivery failure reported back to the sender. A soft bounce is temporary (mailbox full, server busy, greylisting), signaled by a
4xxSMTP code; the sending server retries for a while. A hard bounce is permanent (address does not exist, domain has no mail server, message rejected by policy), signaled by a5xxcode.Why it matters: the bounce message contains the exact reason. Keep sending to hard-bouncing addresses and mailbox providers treat you as a spammer, hurting delivery for everyone else.
Example:
550 5.1.1 User unknownis a hard bounce for a bad address;451 4.7.1 Try again lateris a soft deferral;550 5.7.26and similar5.7.xcodes often mean the message failed authentication such as DMARC.Common confusion: a "bounce" can also be a rejection during the SMTP conversation, which the sender’s server then reports. Bounce reports go to the envelope sender, not necessarily the From address, so website mail bounces may land in a mailbox nobody reads.
- Brute-force attack
Trying huge numbers of passwords against a login until one works.
Also called: brute force, password guessing
A brute-force attack automates password guessing against
wp-login.php,xmlrpc.php, SFTP, SSH or a hosting panel. Attacks are usually spread across many IP addresses to slip past simple per-IP blocks.Why it matters: even when no password is guessed, each attempt runs PHP, so a large attack can slow the site or exhaust resource limits. Weak or reused passwords on admin accounts do eventually fall.
Example:
grep -c "POST /wp-login.php" ACCESS.LOGcounts login attempts in an access log, where ACCESS.LOG is the log path. Defend with strong unique passwords, two-factor authentication, rate limiting at the server or CDN, and blockingxmlrpc.phpif unused.Common confusion: renaming the login URL reduces noise but is not real protection. Brute force is guessing; credential stuffing uses passwords already leaked elsewhere.
C
- CAA record
A DNS record listing which certificate authorities are allowed to issue SSL certificates for your domain.
Also called: CAA, certification authority authorization
A CAA record tells certificate authorities whether they may issue for your domain. Example:
example.com. CAA 0 issue "letsencrypt.org". Theissuewildtag controls wildcard certificates separately, andiodefgives a contact for violation reports.When something breaks: if a CAA record allows only one CA and your host or CDN uses a different one, certificate issuance and renewal fail. That surfaces weeks later as an expired certificate, often with an error mentioning CAA in the issuance log.
Example check:
dig YOURDOMAIN.COM CAA +short, where YOURDOMAIN.COM is your domain. CAs check the exact name and then walk up toward the apex, so a CAA record on the apex covers subdomains unless they have their own.Common confusion: having no CAA record at all is fine and means any publicly trusted CA may issue. CAA affects issuance only; it does nothing to certificates already issued.
- Canonical URL
The one preferred address for a page, signaled to search engines when several URLs show the same content.
Also called: canonical tag, rel=canonical, rel="canonical"
The canonical URL is the version of a page you want indexed. You declare it with a tag in the page head,
<link rel="canonical" href="https://example.com/page/">, or an HTTPLinkheader. Search engines use it to merge duplicates such as tracking-parameter URLs, http and https, or www and non-www.Why it matters: a wrong canonical can make a page disappear from search. A common disaster is a site cloned from staging with every canonical still pointing at the staging domain, or an SEO plugin setting every page’s canonical to the home page.
Example: view the page source and search for
rel="canonical", or use the URL Inspection tool in Search Console, which shows the user-declared canonical and the one Google actually chose.Common confusion: the canonical tag is a strong hint, not a command. Google may pick a different canonical if redirects, internal links or sitemaps disagree with it. It is also not a redirect; visitors still see the URL they opened.
- CAPTCHA
A test on a form that tries to tell people from bots, such as reCAPTCHA, Cloudflare Turnstile or hCaptcha.
Also called: reCAPTCHA, Turnstile, Cloudflare Turnstile, hCaptcha
A CAPTCHA checks whether a form submission comes from a person. Modern versions mostly work invisibly: Google reCAPTCHA v3 gives each request a score, and Cloudflare Turnstile and hCaptcha run background checks before showing any puzzle.
Why it matters: each CAPTCHA needs a site key in the page and a secret key on the server, both tied to a list of allowed domains. After a domain change or a launch from staging, the key no longer matches and forms fail for everyone.
Example:
ERROR for site owner: Invalid domain for site keyin the reCAPTCHA box means the hostname is missing from the key’s domain list. Turnstile reports the same problem as error110200.Common confusion: a stricter CAPTCHA does not stop people typing spam by hand, and it blocks some real visitors. Puzzle CAPTCHAs can also fail accessibility checks. A honeypot field plus an invisible check usually works better. A CAPTCHA that asks visitors to run a command on their computer is not a CAPTCHA at all; see ClickFix.
- Card testing
Fraud where bots use a store's checkout to check which stolen card numbers still work, causing floods of failed orders.
Also called: card testing attack, card testing attacks, carding
Card testing happens when criminals run lists of stolen card numbers through a real checkout, usually with small amounts, to learn which cards are live. The cards that work are sold or used elsewhere.
Why it matters: the store gets dozens or hundreds of failed or pending orders, the gateway may charge fees on attempts depending on your plan, and a high decline rate can lead the gateway to restrict or review your account.
Example: a burst of guest orders for the cheapest product, each with a different card and mismatched names and addresses, mostly declined, often from many IP addresses. Gateway dashboards often label it as card testing.
Common confusion: it is not a hack of your site and no data is stolen from you. Blocking one IP rarely helps because the attempts come from many. Gateway fraud rules, 3D Secure, a challenge on checkout and rate limiting are the usual fixes.
- CDN
A network of servers worldwide that caches and serves your site's files from locations close to each visitor.
Also called: content delivery network
A CDN (content delivery network) sits between visitors and your origin server. It caches static files, and sometimes whole pages, at edge locations, so most requests never reach your server. Many CDNs also act as a reverse proxy, firewall and DDoS shield.
Why it matters: when a CDN is in front, it changes how problems look. Errors may be branded by the CDN, stale content may be served from cache after you fixed something, and the origin sees CDN IP addresses instead of visitor IPs unless it reads the forwarded header.
Example:
curl -sI https://YOURDOMAIN.COM/and look for headers likecf-cache-status,x-cacheorage, where YOURDOMAIN.COM is your domain. Purge the CDN cache after fixing content or deploying CSS and JavaScript changes.Common confusion: a CDN does not replace hosting or backups. If the origin is down and the page is not cached, the CDN can only show an error.
- Certificate authority
An organization trusted by browsers and operating systems to verify domain control and sign TLS certificates.
Also called: certification authority, certificate authorities
A certificate authority (CA) checks that the requester controls a domain (or, for higher validation levels, verifies the organization) and then signs a certificate. Browsers and operating systems ship a list of trusted root CAs.
Why it matters: if a CA is distrusted, a root expires, or a device has an outdated trust store, certificates that look fine in one browser fail in another or in server-to-server connections such as API calls and payment callbacks.
Example:
echo | openssl s_client -connect YOURDOMAIN.COM:443 -servername YOURDOMAIN.COM 2>/dev/null | openssl x509 -noout -issuershows which CA issued the certificate, where YOURDOMAIN.COM is your domain. CAA records control which CAs may issue for your domain.Common confusion: paid certificates are not more strongly encrypted than free ones. Encryption strength depends on the key and the TLS settings, not the price or the CA.
- Certificate Transparency
Public, append-only logs of every publicly trusted certificate issued, which anyone can search.
Also called: CT logs, crt.sh
Certificate Transparency requires CAs to record certificates in public logs. Browsers such as Chrome and Safari only trust a publicly issued certificate if it carries proof it was logged.
Why it matters: you can see every certificate issued for your domain, which helps you spot certificates you did not request (a sign of compromise or a forgotten service), find old subdomains, and confirm whether a renewal actually happened.
Example: search
%.YOURDOMAIN.COMon crt.sh to list certificates for your domain and its subdomains, where YOURDOMAIN.COM is your domain.Common confusion: because logs are public, the moment you get a certificate for
secret-staging.example.com, that name is visible to anyone. Do not rely on hidden subdomains for privacy.- Character set
The encoding that decides how text is stored as bytes; WordPress uses utf8mb4 so every character, including emoji, fits.
Also called: utf8mb4, charset
A character set maps characters to bytes. utf8mb4 is full UTF-8, using up to four bytes per character, and has been WordPress’s default since version 4.2. MySQL’s older
utf8(an alias forutf8mb3) cannot store four-byte characters such as emoji.Why it matters: mismatched character sets during export and import turn accented letters and curly quotes into garbage like
’(mojibake), or cut posts off at the first emoji.Example: check
DB_CHARSETinwp-config.php(normallyutf8mb4) and export and import with--default-character-set=utf8mb4.SHOW CREATE TABLE wp_posts;shows a table’s character set.Common confusion: the character set and the collation are different settings. Fixing visible mojibake after the fact requires converting the data, not just changing the table’s declared character set.
- Child theme
A theme that inherits a parent theme and holds your customizations, so parent updates do not wipe them out.
Also called: child themes
A child theme has its own folder with a
style.cssthat names its parent in aTemplate:header, plus any files you want to override. WordPress loads the child’s files first, falling back to the parent.Why it matters: edits made directly to a parent theme are lost the moment it updates. If the parent is missing or renamed, the child breaks and WordPress may report the theme as broken.
Example:
wp theme listshows both, andwp option get template(the parent) versuswp option get stylesheet(the active child) shows the relationship.Common confusion: a child theme copies nothing automatically. A template file copied into the child stays frozen as it was, so it can break, or miss fixes, when the parent changes its own copy.
- ClickFix
A fake "verify you are human" page that tricks visitors into pasting and running a malicious command on their own computer.
Also called: fake CAPTCHA, ClickFix attack
ClickFix is a social engineering trick. A page that looks like a CAPTCHA or an error tells the visitor to press Win+R, then Ctrl+V, then Enter (or to paste into Terminal on a Mac). A script on the page has already copied a command to their clipboard, and running it installs malware such as a password stealer.
Why it matters: attackers inject these overlays into hacked WordPress sites, so your visitors are the victims and your domain gets blocklisted. The overlay is often shown only to some visitors, such as first-time Windows users, so the owner may never see it.
Example: visitors report a Cloudflare-style box with numbered steps involving the Run dialog. Searching the page source for
clipboard,powershellormshtacan help confirm it.Common confusion: a genuine Cloudflare or CAPTCHA check never asks anyone to open Run, Terminal or PowerShell. If your site shows one that does, the site is compromised.
- Cloaking
Showing search engines different content from what human visitors see, a tactic used by both spammers and hacks.
Also called: cloaked content
Cloaking serves one version of a page to crawlers and another to people, based on user agent, IP address or referrer. Search engines treat deliberate cloaking as a serious spam violation.
Why it matters: hacked sites often cloak injected spam so it only appears to Googlebot or to visitors arriving from search results, which hides the compromise from owners. It can also lead to a manual action.
Example: compare
curl -s https://YOURDOMAIN.COM/ | grep -i viagrawithcurl -s -A "Googlebot" https://YOURDOMAIN.COM/ | grep -i viagra, where YOURDOMAIN.COM is your domain and the search word is whatever spam you suspect. Smarter malware checks real Googlebot IPs, so Search Console’s URL Inspection is the reliable check.Common confusion: serving responsive layouts, or different content by language with proper signals, is not cloaking. Cloaking is about deceiving search engines.
- Cloudflare
A company whose network can sit in front of your site as DNS host, reverse proxy, CDN and firewall.
Also called: Cloudflare proxy, orange cloud
Cloudflare offers DNS hosting plus a reverse proxy network. When a DNS record is proxied (the orange cloud), visitors connect to Cloudflare, which then fetches the page from your origin server, caching and filtering along the way. A gray cloud record is DNS only, and visitors go straight to your server.
Why it matters: with the proxy on, errors may be Cloudflare’s pages (520 to 526, or 1xxx codes), your server sees Cloudflare IPs unless it reads the forwarded visitor IP, and the SSL mode chosen in Cloudflare decides whether HTTPS works or loops.
Example:
curl -sI https://YOURDOMAIN.COM/showingserver: cloudflareand acf-rayheader means the request went through Cloudflare. YOURDOMAIN.COM is your domain.Common confusion: Cloudflare is not your host. If your origin server is down, Cloudflare can only show an error. Moving nameservers to Cloudflare also moves every DNS record, including email records, which must be copied correctly.
- Cloudflare SSL mode
The Cloudflare setting that decides whether and how Cloudflare uses HTTPS to reach your server: Off, Flexible, Full or Full (strict).
Also called: Cloudflare SSL modes, Flexible SSL, Full (strict), SSL/TLS encryption mode
The SSL/TLS encryption mode in Cloudflare controls the connection between Cloudflare and your origin server. Flexible uses plain HTTP to the origin. Full uses HTTPS but accepts any certificate, even expired or self-signed. Full (strict) uses HTTPS and requires a valid certificate for your hostname, either publicly trusted or a Cloudflare Origin CA certificate. Newer zones may use an automatic setting that picks a mode for you.
Why it matters: Flexible combined with a WordPress site or server that forces HTTPS causes
ERR_TOO_MANY_REDIRECTS, because the origin keeps redirecting the HTTP requests Cloudflare sends. Full (strict) with an expired origin certificate causes error 526.Example: in the Cloudflare dashboard, open SSL/TLS, Overview to see the current mode. With a valid certificate on the server, choose Full (strict).
Common confusion: visitors see a padlock in every mode except Off, because the browser only sees Cloudflare’s certificate. Flexible looks secure while the second half of the trip is unencrypted.
- CloudLinux LVE
A CloudLinux technology that caps each hosting account's CPU, memory, processes and I/O so one site cannot sink the server.
Also called: LVE, Lightweight Virtual Environment, entry processes, EP limit, 508 Resource Limit Is Reached
LVE (Lightweight Virtual Environment) is how CloudLinux isolates shared hosting accounts. Each account gets limits on CPU speed, physical memory, number of processes, entry processes, and disk I/O.
Why it matters: when an account hits a limit, requests are slowed or refused. Visitors see a slow site, a 503, or "508 Resource Limit Is Reached". The site is not broken; it has outgrown its allowance or is being hammered.
Example: in cPanel, the Resource Usage page shows which limit was hit and when. Compare those times with your access log to find the bot, cron job or slow page responsible.
Entry processes (EP) count how many requests are inside the account at the same moment, roughly concurrent PHP requests. When the EP limit is reached, new requests get "508 Resource Limit Is Reached" or a 503. Slow requests hold their slot longer: with an EP limit of 20 and 3 seconds per request, about 20 requests every 3 seconds is the ceiling, and halving request time doubles it. Entry processes are not visitors; cached pages barely touch them.
Common confusion: a memory fault under LVE can kill a PHP process abruptly, showing as a 500 or 503 without a clear PHP error message. Raising limits only helps if traffic is genuine.
- CLS
A score for how much content unexpectedly jumps around while the page loads and is used; good is 0.1 or less.
Also called: Cumulative Layout Shift, layout shift
Cumulative Layout Shift adds up unexpected movements of visible content, grouped into bursts, and reports the largest burst. Shifts right after a user interaction do not count.
Why it matters: shifting layouts make people tap the wrong thing. Common causes are images and embeds without width and height, ads and banners injected above content, cookie notices pushing content down, and web fonts swapping with different sizes.
Example: give images and iframes
widthandheightattributes (or CSSaspect-ratio), reserve space for ads, and overlay cookie banners instead of inserting them above content.Common confusion: CLS has no unit; it is a score. Shifts can happen long after load, for example from lazy-loaded content without reserved space, so field CLS is often worse than lab CLS.
- CNAME flattening
A DNS provider feature that lets the apex act like a CNAME by looking up the target and serving its IPs as A records.
Also called: ALIAS record, ANAME
CNAME flattening (also sold as ALIAS or ANAME records) lets you point the apex at a hostname. The DNS provider resolves the target itself and returns ordinary A and AAAA records, so the rule against CNAMEs at the apex is not broken.
Why it matters: it is the usual fix when a platform says "point your domain at our hostname" and your apex cannot hold a CNAME. Because the provider resolves the target from its own location, geo-routed CDNs may give slightly less optimal answers.
Example: in a provider that supports it, create
@ CNAME target.platform.exampleor@ ALIAS target.platform.example;dig YOURDOMAIN.COM A +shortthen returns IPs, not a CNAME. YOURDOMAIN.COM is your domain.Common confusion: this is a provider feature, not a standard record type. ALIAS and ANAME are not portable between DNS providers, so check for them before you move DNS.
- CNAME record
A DNS record that makes one name an alias of another name, so lookups follow it to the target name's records.
Also called: CNAME, canonical name record
A CNAME (canonical name) record says "this name is really that other name". For example
www.example.com. CNAME example.com.orshop.example.com. CNAME stores.platform.example.. Resolvers then look up the target and use its A and AAAA records.Why it matters: SaaS platforms, CDNs and site builders usually ask for a CNAME so they can change their IPs without you touching DNS. A typo in the target, or a target that no longer exists, breaks the name completely.
The key rule: a name with a CNAME cannot have any other record type. That is why you cannot put a plain CNAME on the apex (example.com), which must hold SOA and NS records. Some DNS providers work around this with CNAME flattening or ALIAS records.
Common confusion: a CNAME is not a redirect. The browser address bar does not change, and it does not affect the URL path or HTTPS. A CNAME also cannot point at a URL, only at a hostname.
- Collation
The rules a database uses to compare and sort text, such as whether uppercase and lowercase count as equal.
Also called: database collation
A collation belongs to a character set and decides how text is compared and sorted. For example,
utf8mb4_unicode_ciis case-insensitive (ci). MySQL 8 defaults toutf8mb4_0900_ai_ci, and recent MariaDB versions use their own newer defaults.Why it matters: importing a dump from MySQL 8 into MariaDB or an older MySQL can fail with "Unknown collation: 'utf8mb4_0900_ai_ci'". Mixed collations between tables can cause "Illegal mix of collations" errors in queries that join them.
Example: to import a MySQL 8 dump into MariaDB, replace the collation name in the dump with one the target supports, such as
utf8mb4_unicode_ci, or export with an explicit compatible collation.Common confusion: changing the collation does not convert stored bytes. It changes comparisons and sorting, and can alter which values count as duplicates in unique indexes.
- Consent Mode
Google's way for a cookie banner to tell Google tags what a visitor agreed to, so tags adjust what they store and send.
Also called: Google Consent Mode, Consent Mode v2
Consent Mode lets a consent banner pass the visitor’s choices to Google tags (Analytics, Ads, Tag Manager) as signals such as
analytics_storage,ad_storage,ad_user_dataandad_personalization. Version 2 added the last two.Why it matters: if the banner sends no signal, or sends "denied" by default and never updates, Analytics shows a sudden drop in visitors even though traffic did not change. Google also requires consent signals for some advertising features with visitors in the EEA.
Example: in Tag Assistant, a page load should show a default consent state first and an update after the visitor clicks Accept. If the update never appears, the banner and the tag are not connected.
Common confusion: Consent Mode is not a consent banner and does not make a site compliant by itself. It only passes on a choice that your banner collected. Whether you need a banner at all depends on where your visitors are; this is not legal advice.
- Contrast ratio
How different two colors are in brightness, written like 4.5:1. WCAG sets minimums for text and controls.
Also called: color contrast, contrast ratios
A contrast ratio compares the relative luminance of text (or an icon) and its background, from 1:1 (identical) to 21:1 (black on white).
Why it matters: WCAG level AA asks for at least 4.5:1 for normal text and 3:1 for large text (about 18 point, or 14 point bold) and for the visible parts of controls such as input borders and focus indicators. Low contrast is one of the most common failures that automated scanners report.
Example: light gray
#999999text on white is about 2.8:1 and fails. Darkening it to around#767676reaches about 4.5:1. Check pairs with a contrast checker rather than by eye.Common confusion: contrast is measured on the actual colors shown, including text over photos and hover or disabled states. Brand colors that pass on white can fail on a tinted section.
- Control panel
The web dashboard your host provides to manage files, databases, email, domains, PHP settings and backups.
Also called: hosting control panel, hosting panel, cPanel, Plesk, DirectAdmin
A hosting control panel is the browser interface for managing a hosting account. Common ones are cPanel, Plesk and DirectAdmin; many hosts build their own. It is where you find the file manager, databases, phpMyAdmin, email accounts, SSL, PHP version, logs and backups.
Why it matters: when WordPress is down, the panel is often the only way in. Error logs, the PHP version switch, backups and the SSH or SFTP details all live there.
Example: cPanel puts the PHP version under MultiPHP Manager or a host-specific PHP selector, and raw access logs under Metrics. Menu names vary by panel and host, so the hosting control panel cheat sheet lists where each item lives.
Common confusion: the hosting panel login is not the WordPress login, and neither is the registrar login. Keep all three in a password manager, and do not let only one person hold them.
- Core Web Vitals
Google's three main user-experience metrics: loading (LCP), responsiveness (INP) and visual stability (CLS).
Also called: CWV, Web Vitals
Core Web Vitals are LCP (Largest Contentful Paint), INP (Interaction to Next Paint) and CLS (Cumulative Layout Shift). A page passes when the 75th percentile of real visits is "good" for all three: LCP up to 2.5 seconds, INP up to 200 milliseconds and CLS up to 0.1.
Why it matters: they measure what visitors feel, and Google uses them as one of many page experience signals in search. A sudden drop after a theme change, plugin update or new ad script is a common performance emergency.
Example: PageSpeed Insights shows field data from the Chrome UX Report for a URL and origin, alongside a Lighthouse lab test. Search Console’s Core Web Vitals report groups affected URLs.
Common confusion: INP replaced First Input Delay (FID) as a Core Web Vital in March 2024. The Lighthouse score is a lab estimate, not the Core Web Vitals assessment.
- CORS
Browser rules that decide whether a page on one site may read responses from another site, controlled by headers.
Also called: cross-origin resource sharing, Access-Control-Allow-Origin
CORS (cross-origin resource sharing) relaxes the browser’s same-origin policy in a controlled way. A server opts in by sending headers such as
Access-Control-Allow-Origin. For some requests the browser first sends anOPTIONS"preflight" request to ask permission.Why it matters: CORS errors break fonts loaded from a CDN or another subdomain, headless front ends calling the WordPress REST API, and scripts calling APIs. The browser console shows messages like "blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present".
Example:
curl -sI -H "Origin: https://OTHER-SITE.COM" https://YOURDOMAIN.COM/FONT.woff2shows whether the response includes the allow header for OTHER-SITE.COM, where FONT.woff2 is the file that fails.Common confusion: CORS is enforced by browsers, not servers, and it is not a security wall for your server: curl and bots ignore it. An origin is scheme, host and port together, so http and https, or www and non-www, count as different origins.
- Crawling
Search engine bots fetching pages and following links to discover and refresh content.
Also called: web crawler, Googlebot, crawler
Crawling is the fetching step: bots such as Googlebot request URLs found through links and sitemaps. robots.txt controls what they may fetch.
Why it matters: if crawlers get 5xx errors, timeouts or firewall blocks, Google slows crawling and may drop pages. A WAF or rate limit that blocks Googlebot can quietly remove a site from search.
Example: Search Console’s Crawl stats report shows response codes and host status. Verify real Googlebot by running
host IP.ADDRESS(the name should end ingooglebot.comorgoogle.com) and then resolving that name back to the same IP, where IP.ADDRESS is from your access log.Common confusion: crawled does not mean indexed, and blocking a URL in robots.txt does not remove it from the index.
- Credential stuffing
Logging in with usernames and passwords leaked from other sites, betting that people reuse them.
Also called: credential stuffing attack
Credential stuffing replays real username and password pairs from data breaches against other services. Success rates are low per attempt, but reused passwords make it effective at scale.
Why it matters: an admin account can be taken over on the first try with no warning signs of guessing, because the password was correct. Customer accounts on stores are frequent targets, leading to fraud and support load.
Example: unique passwords from a password manager and two-factor authentication stop it. Login logs showing successful logins from unfamiliar countries or many accounts tried once each from the same IP ranges are typical signs.
Common confusion: "we have strong password rules" does not help if the strong password was reused and leaked. Uniqueness matters more than complexity.
- Critical CSS
The small set of CSS needed to render the first screen, inlined so the page can paint before the full stylesheet loads.
Also called: above-the-fold CSS
Critical CSS is extracted for the visible part of a page and placed inline in the head, while the full stylesheet loads without blocking rendering.
Why it matters: it can improve FCP and LCP. When it is generated wrong or goes stale after a design change, visitors see a flash of unstyled or mis-styled content, or content that jumps (CLS) when the full CSS arrives.
Example: after a redesign or theme update, regenerate critical CSS in the optimization plugin and purge caches. Test with a cleared cache on a slow mobile connection in developer tools.
Common confusion: one critical CSS block for every template rarely fits all. Different page types need their own.
- Cron
The Unix scheduler that runs commands at set times, configured in a crontab.
Also called: cron job, crontab
Cron runs commands on a schedule defined by five time fields (minute, hour, day of month, month, day of week). Each user has a crontab, edited with
crontab -eor through the hosting panel.Why it matters: real cron is the reliable way to run WordPress scheduled tasks, backups and cleanup. A cron job that runs too often, overlaps itself or emails output on every run can overload the server or fill a mailbox.
Example:
*/5 * * * * cd /PATH/TO/SITE && wp cron event run --due-now >/dev/null 2>&1runs due WordPress events every 5 minutes, where /PATH/TO/SITE is the WordPress folder. Pair it withdefine( 'DISABLE_WP_CRON', true );inwp-config.php.Common confusion: cron uses the server’s time zone, which may not match WordPress’s. Cron also runs with a minimal environment, so use full paths to
phpandwp.- CrUX
Google's public dataset of real Chrome users' performance measurements, the source of Core Web Vitals field data.
Also called: Chrome User Experience Report
The Chrome User Experience Report collects anonymized performance data from opted-in Chrome users and publishes it per origin and, where traffic allows, per URL. It powers the field data in PageSpeed Insights and Search Console.
Why it matters: it is what Google uses to assess your Core Web Vitals. It reports the 75th percentile over the previous 28 days, so a fix takes up to four weeks to show fully.
Example: PageSpeed Insights shows CrUX data for the URL and the whole origin. Low-traffic pages may show "no data", in which case origin-level data or your own monitoring is all you have.
Common confusion: CrUX only includes Chrome users who meet its criteria, so it is not every visitor, but it is the dataset that counts for Google’s assessment.
- CSP
A response header that tells the browser which sources of scripts, styles, images and frames a page may use.
Also called: Content Security Policy, Content-Security-Policy
A Content Security Policy is sent as a
Content-Security-Policyheader listing allowed sources per resource type, for examplescript-src 'self' https://cdn.example.com. The browser blocks anything not on the list, which limits damage from injected scripts.Why it matters: a strict CSP can break a site the moment you add a new embed, analytics tag or payment widget, because the browser blocks the new source. The console shows "Refused to load the script ... because it violates the following Content Security Policy directive".
Example: start with
Content-Security-Policy-Report-Only, which reports violations without blocking, then tighten. Check what a site sends withcurl -sI https://YOURDOMAIN.COM/ | grep -i content-security.Common confusion: WordPress and many plugins rely on inline scripts, which a strict CSP blocks unless you allow them with nonces or hashes. Adding
'unsafe-inline'makes the policy much weaker against injected scripts.- CVE
A unique ID for a publicly known security flaw; CVSS is the 0 to 10 score used to rate its severity.
Also called: Common Vulnerabilities and Exposures, CVSS, CVSS score
A CVE ID such as
CVE-YEAR-NUMBERnames one publicly disclosed vulnerability so everyone can refer to the same issue. CVSS (Common Vulnerability Scoring System) rates severity from 0.0 to 10.0 using factors like whether login is needed and what an attacker gains. Version 4.0 is the latest; many databases still show 3.1 scores.Why it matters: plugin vulnerability notices cite CVEs and CVSS scores. A critical score for something exploitable without login (unauthenticated) in a plugin you run means update now, or virtually patch it while you update.
Example:
wp plugin list --fields=name,version,update_versionshows installed versions; compare them against the fixed version listed in the advisory for the CVE.Common confusion: CVSS measures technical severity, not your actual risk. A high score in a feature you do not use may matter less than a medium score in your checkout.
D
- Database index
A lookup structure on database columns that lets the database find rows without reading the whole table.
Also called: table index, MySQL index
A database index is like the index at the back of a book. With an index on a column, the database jumps to matching rows instead of scanning every row. Primary keys are indexes; WordPress core adds indexes on common lookups such as
meta_key.Why it matters: a missing index on a large table makes a query read millions of rows, which slows pages and can lock up the database under load. Too many indexes slow down writes and use disk.
Example: prefix a slow query with
EXPLAINto see whether it uses an index;type: ALLwith a largerowsvalue means a full table scan.Common confusion: "indexing" in SEO means search engines adding pages to their index, which has nothing to do with database indexes.
- DDoS
A flood of traffic from many machines meant to overwhelm a site or server so real visitors cannot get through.
Also called: distributed denial of service, denial of service, DDoS attack
A DDoS (distributed denial of service) attack uses many sources, often botnets, to exhaust bandwidth, connections or application resources. Application-layer floods target expensive pages like search, carts and login, and can look like normal traffic.
Why it matters: a small server can be overwhelmed by traffic that a CDN or edge firewall would absorb easily. Blocking at the server only helps once requests have already arrived, and large floods saturate the network before that.
Example: in the access log, look for a surge on one URL or from one network or user agent, then add a rate limit or challenge at the CDN or firewall. Keep the origin IP private so attackers cannot go around the CDN.
Common confusion: not every traffic spike is an attack. A viral post or an aggressive crawler can look similar; read the logs before blocking.
- DKIM
An email signature added by the sending server and checked against a public key published in DNS.
Also called: DomainKeys Identified Mail, DKIM selector, DKIM signature, domainkey
DKIM (DomainKeys Identified Mail) signs selected headers and the body of each message. The signature names a domain (
d=) and a selector (s=); receivers fetch the public key from the TXT record atSELECTOR._domainkey.DOMAIN, where SELECTOR and DOMAIN come from those tags.Why it matters: valid DKIM is needed for good deliverability and for DMARC. Common failures are a key that was never published, a key copied with missing characters, a selector that changed after switching providers, or a mailing list or forwarding service that modified the message.
Example: in a received message’s headers, find
DKIM-Signature: ... d=YOURDOMAIN.COM; s=SELECTOR;, then rundig SELECTOR._domainkey.YOURDOMAIN.COM TXT +short. TheAuthentication-Resultsheader showsdkim=passor the reason it failed.Common confusion: each sending service uses its own selector, so a domain can have many DKIM keys at once. Deleting an "old" selector can break a service still using it.
- DMARC
A DNS policy telling receivers what to do with mail that fails SPF and DKIM alignment with your From domain.
Also called: DMARC record, DMARC policy, DMARC alignment, identifier alignment
DMARC is a TXT record at
_dmarc.YOURDOMAIN.COM, for examplev=DMARC1; p=quarantine; rua=mailto:REPORTS@YOURDOMAIN.COM, where YOURDOMAIN.COM is your domain and REPORTS is a mailbox for aggregate reports. The policyp=isnone(monitor),quarantine(spam folder) orreject.A message passes DMARC when SPF or DKIM passes and the domain it passed for is aligned with the visible From domain. Relaxed alignment (the default) accepts the same organizational domain, such as a subdomain; strict alignment requires an exact match.
Why it matters: a service that sends as your domain but signs DKIM with its own domain passes DKIM yet fails DMARC, so with
p=rejectits mail disappears. Large mailbox providers expect bulk senders to have at least a DMARC record.Example:
dig _dmarc.YOURDOMAIN.COM TXT +short. Start withp=none, read the aggregate reports until every legitimate sender aligns, then tighten.Common confusion: the DMARC specification was updated in 2026 (RFC 9989 and companions). The
pcttag was replaced by attesting tag, but receivers adopt changes gradually andv=DMARC1records keep working.- DNS
The internet's address book: it turns a name like example.com into the IP addresses and mail servers behind it.
Also called: Domain Name System
DNS (Domain Name System) is a distributed database that answers questions like "what is the IP address for www.example.com?" or "which server accepts mail for example.com?". Your domain’s answers live in a zone on its authoritative nameservers, and resolvers around the world ask those servers and cache what they hear.
When a site or email suddenly stops working after a hosting move, domain renewal or "small DNS change", DNS is the first thing to check. A wrong record, an expired domain or nameservers pointing at the wrong provider all look like "the site is down" to visitors.
Example:
dig YOURDOMAIN.COM A +shortasks your resolver for the A record of YOURDOMAIN.COM (replace it with your domain).dig @NS1.PROVIDER.COM YOURDOMAIN.COM Aasks one specific nameserver directly, which skips caches.Common confusion: DNS is not hosting. Your registrar, your DNS provider and your web host can be three different companies, and changing records in the wrong dashboard does nothing.
- DNS-01 challenge
An ACME check that proves domain control by publishing a TXT record, required for wildcard certificates.
Also called: DNS-01
In DNS-01 validation, the client publishes a TXT record at
_acme-challenge.YOURDOMAIN.COM, where YOURDOMAIN.COM is the domain being validated, containing a value derived from the CA’s token. The CA looks it up and issues if it matches.Why it matters: it works even when the site is not yet live or sits behind a proxy, and it is the only way to get wildcard certificates from Let’s Encrypt. It fails if the TXT record is created at the wrong DNS provider, has not reached the authoritative servers yet, or the DNS API credentials expired.
Example:
dig _acme-challenge.YOURDOMAIN.COM TXT +short @NS1.PROVIDER.COM, where NS1.PROVIDER.COM is one of your authoritative nameservers, confirms the record exists at the source.Common confusion: you can delegate just
_acme-challengeto another zone with a CNAME, so the ACME client does not need full API access to your main DNS.- DNS blocklist
A published list of IP addresses or domains known for spam, which mail servers check before accepting mail.
Also called: DNSBL, RBL, blocklist, blacklist
A DNS blocklist (DNSBL or RBL) is queried with a DNS lookup. If a sending IP or domain appears, receiving servers may reject or filter its mail. Lists are run by organizations such as Spamhaus, and each has its own listing and delisting rules.
Why it matters: if your server’s IP is listed, often because a compromised site or mailbox sent spam, mail from every site on that IP can bounce. Rejections usually name the list in the bounce message.
Example: to check IP 203.0.113.10 against a list, reverse the octets and query the list’s zone, for example
dig +short 10.113.0.203.zen.spamhaus.org. An answer in127.0.0.xmeans listed. Spamhaus may not answer queries from large public resolvers, so use its web lookup tool.Common confusion: requesting delisting before fixing the cause gets you listed again, sometimes for longer. Find the compromised account or script first.
- DNS propagation
The delay between changing a DNS record and everyone seeing the new answer, caused mostly by caching and TTLs.
Also called: propagation
DNS propagation is a loose name for the time it takes resolvers worldwide to drop cached answers and fetch new ones. Nothing is actively pushed out; caches simply expire according to the TTL that was on the old record.
Why it matters: during this window some visitors reach the new server and some the old one, so orders, form entries and comments can land on the wrong copy of a site. Nameserver changes take longer than record changes because the parent zone’s NS records carry long TTLs.
Example: compare
dig @1.1.1.1 YOURDOMAIN.COM A +shortwithdig @8.8.8.8 YOURDOMAIN.COM A +short, where YOURDOMAIN.COM is your domain. Asking an authoritative nameserver directly withdig @NS1.PROVIDER.COMshows what the source says now.Common confusion: "wait 48 hours" is a rule of thumb, not a law. If the authoritative server still returns the old value, the problem is your edit, not propagation.
- DNS resolver
The server that looks up DNS answers on your behalf and caches them, run by your ISP, network or a public service.
Also called: recursive resolver, recursive DNS
A resolver (recursive resolver) receives a question from your device, walks the DNS hierarchy from the root to the authoritative nameservers, and caches the answer for the record’s TTL. Examples are your ISP’s resolver, your office router, or public resolvers like
1.1.1.1and8.8.8.8.Why it matters: when a site works on mobile data but not on office Wi-Fi, the two networks are often using different resolvers with different cached answers. Resolvers that validate DNSSEC also return SERVFAIL for a domain with broken signatures.
Example:
dig @RESOLVER.IP YOURDOMAIN.COM Aasks a specific resolver, where RESOLVER.IP is its address and YOURDOMAIN.COM is your domain. Your computer also keeps its own small cache, which you can flush.Common confusion: resolvers do not hold your records; they borrow them. Editing your zone does not clear anyone’s resolver cache.
- DNSSEC
A system of cryptographic signatures on DNS records that lets resolvers detect forged or tampered answers.
Also called: DNS Security Extensions
DNSSEC signs the records in a zone. The parent zone publishes a DS record that vouches for your zone’s key, creating a chain of trust from the DNS root. Validating resolvers reject answers whose signatures do not check out.
Why it matters when something breaks: DNSSEC protects against spoofing, but a mistake makes the domain vanish for validating resolvers. The classic case is moving DNS providers while the old DS record is still at the registrar: the new provider’s records do not match the old key, and lookups return SERVFAIL.
Example:
dig YOURDOMAIN.COM DS +shortshows the DS record at the parent, anddig +dnssec YOURDOMAIN.COM Ashows signatures, where YOURDOMAIN.COM is your domain. Online DNSSEC analyzers draw the chain and point at the broken link.Common confusion: DNSSEC does not encrypt DNS and has nothing to do with SSL certificates. When moving DNS, remove the DS record (or add the new one) at the registrar before or as part of the switch.
- Domain registry
The organization that runs a top-level domain such as .com or .org and keeps the master list of names under it.
Also called: registry operator, TLD registry
A registry operates a top-level domain (TLD). It maintains the authoritative database of every registered name in that TLD and publishes the TLD’s nameservers. Registrars sell names; the registry is the wholesale layer behind them.
Why it matters: registry status codes such as
serverHoldorserverTransferProhibitedcan stop a domain from resolving or transferring, and only the registrar can work with the registry to clear them. Registry rules also set renewal grace and redemption periods.Example: an RDAP lookup for YOURDOMAIN.COM (your domain) lists status codes. Codes starting with
clientare set by the registrar; codes starting withserverare set by the registry.Common confusion: you never deal with the registry directly for a normal domain. Each country code TLD can have its own rules on eligibility, transfers and disputes.
- Drop-in
A specially named file in wp-content that replaces a piece of WordPress core behavior, such as caching or the database layer.
Also called: drop-ins, object-cache.php, advanced-cache.php
A drop-in is a file with a reserved name in
wp-content/. Examples:advanced-cache.php(page caching, used whenWP_CACHEis true),object-cache.php(persistent object cache),db.php(database class),db-error.php,maintenance.phpandfatal-error-handler.php.Why it matters: drop-ins are not removed when you deactivate the plugin that installed them. A leftover
object-cache.phppointing at a Redis server that no longer exists, or anadvanced-cache.phpfrom an uninstalled cache plugin, causes errors or stale pages after a migration.Example: Plugins, Drop-ins in wp-admin lists them, or run
wp plugin list --status=dropin. Renaming the file (for example toobject-cache.php.off) disables it.Common confusion: drop-ins are not must-use plugins, though both live in
wp-contentand both load without being activated.- DSN
The standard machine-readable report a mail server sends back about delivery failure or delay.
Also called: Delivery Status Notification, non-delivery report, NDR
A DSN (Delivery Status Notification) is the formal bounce message. It includes a human-readable explanation plus a structured part with the recipient, an enhanced status code such as
5.1.1, and the remote server’s diagnostic text. Microsoft calls these NDRs (non-delivery reports).Why it matters: the
Diagnostic-Codeline usually quotes exactly why the remote server refused the message, which is the evidence you need before changing DNS or contacting a provider.Example: look for
Status: 5.7.1andDiagnostic-Code: smtp; 550 5.7.1 ...in the report. The first digit (2,4or5) means success, temporary failure or permanent failure.Common confusion: delay notices ("message not yet delivered, will retry") are DSNs too and are not failures yet. Fake DSNs for mail you never sent are backscatter.
- DS record
A record at the parent zone, set through your registrar, that links your domain's DNSSEC key into the chain of trust.
Also called: delegation signer
A DS (delegation signer) record holds a hash of your zone’s key-signing key. It sits in the parent zone (for example the .com registry), and you add or remove it through your registrar. It tells validating resolvers which key to trust for your zone.
Why it matters: a DS record that does not match the keys your current DNS provider uses breaks resolution for everyone behind a validating resolver. That often happens after a DNS provider change, or when DNSSEC is turned off at the provider but the DS record is left at the registrar.
Example:
dig YOURDOMAIN.COM DS +short, where YOURDOMAIN.COM is your domain, returns a key tag, algorithm, digest type and digest. Your DNS provider shows the values the DS record should have.Common confusion: the DS record is not in your own zone file. Deleting DNSSEC at the DNS provider is not enough; the DS must be removed at the registrar too.
E
- Envelope sender
The behind-the-scenes sender address used during SMTP delivery, where bounces go and what SPF checks.
Also called: Return-Path, MAIL FROM, bounce address
The envelope sender is given in the SMTP
MAIL FROMcommand. After delivery it appears as theReturn-Pathheader. It can differ from the visibleFrom:address, and newsletter services often set it to their own domain to process bounces.Why it matters: SPF checks this address, not the visible From. WordPress mail sent through PHP’s mailer often gets an envelope sender like
USER@SERVER.HOSTNAME, where USER and SERVER.HOSTNAME are the server’s account and host names, so SPF and DMARC alignment fail and mail lands in spam.Example: view the full headers of a received message and compare
Return-Path:withFrom:. An SMTP plugin that authenticates as your domain’s mailbox usually fixes the mismatch.Common confusion: the
Reply-Toheader is a third, separate address that only affects where replies go.- EPP code
A secret code from your current registrar that authorizes moving a domain to a different registrar.
Also called: auth code, transfer code, EPP key
An EPP code (also called auth code or transfer code) is a password for a domain transfer. You get it from the current registrar and give it to the new one. EPP is the protocol registrars use to talk to registries.
Why it matters: you cannot move a domain without it, and a registrar or former web designer who will not hand it over can block a move. The domain must also be unlocked (status
clientTransferProhibitedremoved), and most generic TLDs restrict transfers for a period after registration or a previous transfer, commonly 60 days.Example: in the registrar dashboard look for "transfer out", "get auth code" or "unlock domain". Some country code TLDs use a different process entirely.
Common confusion: transferring a domain does not move DNS or hosting by itself, and it is a bad idea to transfer during an outage. Fix the outage first, then move the domain calmly.
- Error log
A log file where the web server or PHP records errors, warnings and fatal crashes with file and line numbers.
Also called: PHP error log, error_log
An error log records problems. The web server’s error log captures configuration errors, permission problems and upstream failures. The PHP error log records PHP fatals, warnings and notices, often with a stack trace pointing to the plugin or theme at fault.
Why it matters: a white screen, 500 error or critical error message tells you nothing; the error log tells you exactly which file and line failed. It is the first place to look.
Example:
tail -n 100 PATH/TO/error.logshows the latest entries, where PATH/TO/error.log is the log path shown in your hosting panel or set by PHP’serror_logsetting. Look for "PHP Fatal error" and the path insidewp-content/plugins/orthemes/.Common confusion: some hosts write an
error_logfile in each folder where errors happen. WordPress’s owndebug.logis a separate file that only fills whenWP_DEBUG_LOGis on.
F
- fail2ban
A server tool that watches log files and blocks IP addresses for a while after repeated failed logins or abuse.
fail2ban reads log files such as the SSH or web server log, matches patterns like failed logins, and adds a firewall rule that bans the offending IP for a set time.
Why it matters: it quietly stops brute-force attempts, but it can also ban you. Mistyping an SFTP password a few times, or an office full of people behind one IP address, can trigger a ban, and the site then times out for you while working for everyone else.
Example:
sudo fail2ban-client status sshdon a server you manage lists banned IPs for the SSH jail, andsudo fail2ban-client set sshd unbanip YOUR_IPlifts a ban, where YOUR_IP is your public IP. On shared hosting, ask the host instead.Common confusion: a fail2ban ban looks like the site being down (
ERR_CONNECTION_TIMED_OUT), not like an error page. Test from mobile data before assuming the server crashed.- FCP
How long until the browser first draws any text or image from the page; good is 1.8 seconds or less.
Also called: First Contentful Paint
First Contentful Paint marks the moment the first piece of content (text, image, SVG or non-white canvas) appears. It shows when the visitor first sees that something is happening.
Why it matters: slow FCP points at the start of loading: slow TTFB, redirects, render-blocking CSS and JavaScript in the head, or web fonts hiding text while they load.
Example: in a Lighthouse report, compare FCP with TTFB. If TTFB is fast but FCP slow, look at render-blocking resources; if TTFB itself is slow, fix the server or caching first.
Common confusion: FCP is not a Core Web Vital. It is a diagnostic that helps explain LCP.
- fetchpriority
An HTML attribute that tells the browser how important an image, script or other fetch is relative to others.
Also called: fetch priority, Fetch Priority API
fetchpriority takes
high,loworauto. Browsers start images at low priority until layout shows they are visible;fetchpriority="high"on the LCP image lets it start at high priority straight away.Why it matters: it is one of the simplest LCP improvements. WordPress (since 6.3) tries to add
fetchpriority="high"to the image it expects to be the LCP element, but themes and page builders do not always cooperate.Example:
<img src="HERO.webp" fetchpriority="high" alt="...">on the hero, andfetchpriority="low"on carousel slides that start hidden, where HERO.webp is the hero image.Common confusion: marking many images high defeats the purpose. Use it on one or two truly critical resources.
- Field data and lab data
Field data measures real visitors' experience; lab data is a controlled test run on one simulated device.
Also called: field data, lab data, real user monitoring, RUM, synthetic testing
Field data (real user monitoring) comes from actual visits on many devices and networks, such as the Chrome UX Report or your own analytics. Lab data comes from a tool like Lighthouse loading the page once under fixed, simulated conditions.
Why it matters: Core Web Vitals assessments in Search Console and PageSpeed Insights use field data. Lab tests are repeatable and good for debugging and checking a fix before it reaches users, but they do not prove what visitors experience.
Example: PageSpeed Insights shows both: the top "Discover what your real users are experiencing" section is field data; the scored Lighthouse section below is lab data.
Common confusion: a perfect lab score with failing field data is common, and so is the reverse. Field data also lags, because CrUX uses a rolling 28-day window.
- File integrity monitoring
Detecting changed files by comparing their checksums, short fingerprints of file contents, against a known good record.
Also called: FIM, checksum, checksums, file checksum, sha256sum
A checksum (hash) is a short fingerprint calculated from a file’s contents; change one byte and the checksum changes. File integrity monitoring records checksums of known good files and alerts when files are added, removed or modified.
Why it matters: it catches injected code in core, plugin and theme files quickly, and it tells you exactly which files to examine after a compromise. WordPress.org publishes checksums for core and for plugins in its directory.
Example:
wp core verify-checksumscompares core files with the official checksums for your version, andsha256sum FILEprints the SHA-256 checksum of FILE for comparison with a published value.Common confusion: integrity checks only work where a trusted reference exists. Uploads, custom code and premium plugins have no public checksums, so they need your own baseline or a backup to compare with.
- File permissions
Rules on each file and folder that control who can read, write or run it, set with chmod.
Also called: chmod, Unix permissions
Unix file permissions grant read (4), write (2) and execute (1) to three groups: the owner, the group and everyone else. They are written as three digits:
644means owner can read and write, others can only read. chmod changes them andchownchanges the owner.Why it matters: wrong permissions cause 403 errors, failed updates ("could not create directory"), upload failures, or on some servers a 500 error. Overly open permissions such as
777let other processes or accounts modify your files.Example: typical WordPress values are
755for folders and644for files, withwp-config.phptighter, such as640or600where the server allows.find /PATH/TO/SITE -type d -exec chmod 755 {} +sets folders, where /PATH/TO/SITE is the site folder.Common confusion: ownership often matters more than the numbers. If files belong to a different user than PHP runs as, no sensible permission setting lets WordPress update them.
- Firewall
Rules on a server or network that allow or block connections by IP address and port, before any website code runs.
Also called: server firewall, network firewall, firewalls
A firewall filters network connections. A server firewall (iptables or nftables rules, often managed by tools such as CSF, Imunify360 or fail2ban) decides which IPs may connect to which ports: 443 for HTTPS, 22 for SSH, 587 for mail and so on.
Why it matters: when a firewall blocks your IP, the site seems to be down for you alone. A rule that silently drops packets gives
ERR_CONNECTION_TIMED_OUT; one that rejects them givesERR_CONNECTION_REFUSED. Firewalls also block CDNs, payment webhooks or monitoring services by mistake.Example: if the site works on your phone’s mobile data but not on office Wi-Fi, send your host your public IP (search "what is my IP") and ask them to check the firewall for a block.
Common confusion: a network firewall is different from a WAF. A firewall looks at addresses and ports; a WAF reads the content of web requests. A 403 page is usually a WAF; a timeout is usually a firewall.
- Focus indicator
The visible outline that shows which link, button or field is selected when someone moves through a page with the keyboard.
Also called: focus outline, focus ring, focus indicators, visible focus
A focus indicator marks the element that will respond to the keyboard. Browsers draw one by default, usually an outline. Keyboard users and many people with motor or vision impairments rely on it to know where they are.
Why it matters: themes often remove it with
outline: nonebecause it looks untidy on mouse click. That fails WCAG 2.4.7 Focus Visible (level AA), and keyboard users get lost on the page.Example: press Tab repeatedly on your home page. If you cannot see where you are at every step, add a clear style using
:focus-visible, which shows the outline for keyboard users without showing it on every mouse click.Common confusion: a faint color change is not enough. The indicator needs enough contrast against its surroundings, and in WCAG 2.2 it must not be hidden behind sticky headers or cookie banners.
- FTP
An old protocol for moving files to and from a server. Plain FTP is unencrypted; use SFTP or FTPS instead.
Also called: FTPS, File Transfer Protocol, FTP client
FTP (File Transfer Protocol) moves files between your computer and a server, usually on port 21, in clients such as FileZilla, Cyberduck or WinSCP. Plain FTP sends the username, password and files unencrypted. FTPS is FTP wrapped in TLS. SFTP is a different protocol that runs over SSH, usually on port 22.
Why it matters: when wp-admin is broken, a file client is how most people rename a plugin folder or delete a stuck
.maintenancefile. Passwords sent over plain FTP can be captured, and stolen FTP credentials are a common way sites get infected.Example: in FileZilla, choose SFTP as the protocol, enter the host, username and password or key from your hosting panel, and port 22. If only FTP is offered, choose "Require explicit FTP over TLS".
Common confusion: if WordPress asks for "FTP credentials" when you update a plugin, it is not a request to set up FTP. It means WordPress cannot write to its own files, usually a file ownership problem your host can fix.
G
- GD library
A PHP extension that resizes and converts images. WordPress uses it when ImageMagick is not available.
Also called: PHP GD, GD extension
The GD library is a PHP extension for creating and editing images. WordPress uses an image editor to make thumbnails and resized copies on upload, and falls back to GD when the Imagick extension is missing.
Why it matters: if neither GD nor Imagick is installed, uploads succeed but no thumbnails are made. Format support also depends on how GD was built: a GD without WebP or AVIF support cannot create those formats.
Example: Tools, Site Health, Info, Media Handling shows the active editor and the supported formats.
php -m | grep -i gdover SSH shows whether the extension is loaded for the command line PHP, which may differ from the site’s.Common confusion: GD and ImageMagick are alternatives, not layers. Switching one on or off changes which formats WordPress can process and how much memory large images need.
- GDPR
The EU law on personal data, which can apply to sites outside the EU that collect data from people in it.
Also called: General Data Protection Regulation, UK GDPR
The GDPR (Regulation (EU) 2016/679) has applied since 25 May 2018. It sets rules for collecting and using personal data such as names, emails and IP addresses, and gives people rights to access and delete their data. The UK has its own version, usually called the UK GDPR.
Why it matters for websites: contact forms, analytics, embedded fonts and videos, newsletters and order records all involve personal data. You need a lawful basis for each, a privacy notice that describes it, and a way to handle access and deletion requests. Serious breaches can bring fines of up to EUR 20 million or 4% of worldwide annual turnover, whichever is higher.
Example: WordPress includes Tools, Export Personal Data and Erase Personal Data to help answer requests, and a privacy policy page template under Settings, Privacy.
Common confusion: the GDPR is not only about cookie banners, and a banner does not make a site compliant. Whether it applies to you depends on who you serve and how; this is not legal advice, so check with a lawyer or data protection specialist where you operate.
- Glue record
An IP address published at the parent zone for a nameserver that lives inside the domain it serves.
Also called: glue records
A glue record is an A or AAAA record stored at the registry alongside your NS records. It is needed when a nameserver’s name is inside the zone it serves, such as
ns1.example.comservingexample.com. Without glue, resolvers would need to resolve example.com to find the server that resolves example.com.Why it matters: if you run your own nameservers and change their IP addresses without updating the glue at the registrar, the domain (and possibly every domain using those nameservers) stops resolving.
Example:
dig +norecurse @a.gtld-servers.net YOURDOMAIN.COM NSasks a .com registry server directly; glue appears in the additional section, where YOURDOMAIN.COM is your domain. Registrars often call glue "host records" or "child nameservers".Common confusion: most sites using a host’s or DNS provider’s nameservers never need to touch glue. It matters only for "vanity" or self-run nameservers under your own domain.
- gzip and Brotli
Compression methods servers use to shrink text files like HTML, CSS and JavaScript before sending them to browsers.
Also called: gzip, Brotli, HTTP compression, Content-Encoding
gzip and Brotli compress text responses. The browser says what it supports in
Accept-Encoding; the server answers withContent-Encoding: gziporbr. Brotli usually produces smaller files for text and is supported by modern browsers over HTTPS.Why it matters: missing compression makes pages much heavier. Double compression or a wrong
Content-Encodingheader, often from a plugin compressing output that the server or CDN also compresses, shows as garbled characters orERR_CONTENT_DECODING_FAILED.Example:
curl -sI -H "Accept-Encoding: br, gzip" https://YOURDOMAIN.COM/ | grep -i content-encoding, where YOURDOMAIN.COM is your domain.Common confusion: images such as JPEG, PNG, WebP and AVIF are already compressed, so gzip or Brotli adds nothing for them. Compression is best handled by the web server or CDN, not by a PHP plugin.
H
- Heartbeat API
A WordPress feature that sends regular background requests from open admin screens to admin-ajax.php.
Also called: WordPress Heartbeat, Heartbeat
The Heartbeat API makes the browser call
admin-ajax.phpon a timer, typically every 15 to 60 seconds depending on the screen. It powers post locking, autosave, session expiry warnings and live updates in some plugins.Why it matters: every open admin tab sends these requests, and each one runs PHP. Several editors leaving tabs open can use a noticeable share of PHP workers or entry processes on small plans, showing up as many
POST /wp-admin/admin-ajax.phplines in the access log.Example: look for
action=heartbeatin request bodies via the browser’s Network tab. Plugins can lengthen the interval with theheartbeat_settingsfilter or limit it to the editor.Common confusion: turning Heartbeat off completely breaks post locking and autosave. Slowing it down is usually enough.
- Honeypot
A hidden form field that people never see or fill in, so a submission with it filled in is almost certainly a bot.
Also called: honeypot field, honeypots
A honeypot is a form field hidden from people with CSS. Many spam bots fill in every field they find, so a submission with something in the honeypot can be rejected quietly.
Why it matters: it stops a lot of simple form spam with no puzzle for real visitors, which helps accessibility and conversions. Most form plugins have a honeypot option.
Example: turn on the honeypot setting in your form plugin, then submit a test entry in a private window to make sure real submissions still arrive.
Common confusion: a honeypot does not stop people typing spam by hand, or smarter bots. Combine it with an invisible CAPTCHA or content filtering when spam continues. Autofill in some browsers can fill hidden fields, so good plugins label the field to discourage that.
- HPOS
WooCommerce's order storage that keeps orders in dedicated database tables instead of the posts tables.
Also called: High-Performance Order Storage, custom order tables
HPOS (High-Performance Order Storage) stores WooCommerce orders in their own tables (
wp_wc_orders,wp_wc_order_addresses,wp_wc_orders_metaand others) rather than as posts inwp_postsandwp_postmeta. It is the default for new stores.Why it matters: plugins that read or write orders directly in
wp_postsdo not see HPOS orders, which shows as missing orders in reports or integrations. With compatibility mode (synchronization) on, both stores are kept in sync, at some cost in writes.Example: WooCommerce, Settings, Advanced, Features shows which order storage is active and whether incompatible plugins are installed.
wp wc hpos count_unmigratedshows how many orders still need syncing.Common confusion: switching storage on a busy store without syncing first can make recent orders seem to disappear. Always back up and sync before switching.
- HSTS
A header that tells browsers to use only HTTPS for a site for a set period, refusing plain HTTP and bypass clicks.
Also called: HTTP Strict Transport Security, Strict-Transport-Security
HSTS is sent as
Strict-Transport-Security: max-age=SECONDS; includeSubDomains, where SECONDS is how long browsers remember the rule. During that time the browser upgrades every HTTP request to HTTPS itself and does not let visitors click through certificate errors.Why it matters: with HSTS on, an expired or wrong certificate becomes a hard stop with no "proceed anyway" link.
includeSubDomainsalso forces HTTPS on every subdomain, which breaks any subdomain that has no valid certificate.Example:
curl -sI https://YOURDOMAIN.COM/ | grep -i strict-transport, where YOURDOMAIN.COM is your domain. Roll out with a shortmax-agesuch as 300, then increase once every subdomain is ready.Common confusion: the
preloadlist built into browsers is very hard to undo quickly. Only submit a domain once you are certain every subdomain will always have HTTPS.- HTTP-01 challenge
An ACME check that proves domain control by serving a token file over plain HTTP on port 80.
Also called: HTTP-01
In HTTP-01 validation, the CA asks for
http://YOURDOMAIN.COM/.well-known/acme-challenge/TOKEN, where YOURDOMAIN.COM is the domain being validated and TOKEN is a random file name. The server must answer with the expected content. Redirects to HTTPS are followed.Why it matters: it fails if DNS points at a different server, a CDN or firewall blocks or caches the path, port 80 is closed, a security plugin or rewrite rule intercepts
/.well-known/, or an AAAA record points at a server that is not answering.Example: create a test file in
.well-known/acme-challenge/under the web root and fetch it withcurl -i http://YOURDOMAIN.COM/.well-known/acme-challenge/TESTFILEover both IPv4 (-4) and IPv6 (-6), where TESTFILE is its name.Common confusion: HTTP-01 cannot issue wildcard certificates. Every name on the certificate must point at the server doing the validation.
- HTTP/2
A newer version of HTTP that sends many requests over one connection at once, with compressed headers.
Also called: HTTP2
HTTP/2 keeps HTTP’s meaning (methods, status codes, headers) but changes how it travels: many requests and responses share one TCP connection in parallel (multiplexing), and headers are compressed. Browsers only use it over HTTPS.
Why it matters: it removes the old need for domain sharding and heavy file bundling. If a server or proxy misbehaves with HTTP/2, you can see odd errors like
ERR_HTTP2_PROTOCOL_ERROR, often from a broken response, a header the proxy rejects or a security module cutting the connection.Example:
curl -sI --http2 https://YOURDOMAIN.COM/showsHTTP/2on the first line if it is supported, where YOURDOMAIN.COM is your domain.Common confusion: HTTP/2 server push is effectively dead; major browsers removed support. Use preload hints instead.
- HTTP/3
The newest HTTP version, which runs over QUIC on UDP instead of TCP to connect faster and handle lossy networks better.
Also called: HTTP3, QUIC
HTTP/3 carries HTTP over QUIC, a transport protocol built on UDP with TLS 1.3 built in. It sets up connections in fewer round trips and avoids one lost packet stalling every stream, which helps on mobile networks.
Why it matters: browsers discover HTTP/3 through an
alt-svcheader or DNS HTTPS records, then try UDP port 443. If a firewall blocks UDP 443, browsers fall back to HTTP/2, so problems usually show up as inconsistency rather than total failure.Example:
curl -sI https://YOURDOMAIN.COM/ | grep -i alt-svcshows whether HTTP/3 is advertised, where YOURDOMAIN.COM is your domain. Developer tools show the protocol per request in the Network tab (enable the Protocol column).Common confusion: HTTP/3 does not change your site’s code or URLs. It is a server, CDN and network setting.
- HTTP cookie
A small piece of data a site asks the browser to store and send back, used for logins, carts and preferences.
Also called: Set-Cookie, browser cookie
A cookie is set with a
Set-Cookieresponse header and sent back by the browser in aCookierequest header on later requests to the same site. Attributes control its scope and safety:Domain,Path,Expires,Secure,HttpOnlyandSameSite.Why it matters: WordPress logins depend on cookies tied to the site’s domain and path. After a domain or HTTPS change, mismatched cookies cause login loops. Page caches usually bypass anyone with a login or cart cookie, so a plugin setting a cookie on every visitor can quietly disable caching.
Example: open developer tools, Application (or Storage), Cookies to see what a site sets. A response header like
Set-Cookie: NAME=VALUE; Path=/; Secure; HttpOnly; SameSite=Laxsets a cookie called NAME holding VALUE.Common confusion: clearing cookies fixes many login loops but does not fix the cause. If
siteurlandhomedo not match the address you log in from, the loop comes back.- HTTP header
A named line of metadata sent with a web request or response, like Content-Type, Cache-Control or Location.
Also called: response header, request header, HTTP headers
HTTP headers are key and value pairs sent before the body of a request or response. Request headers carry things like
Host,User-Agentand cookies. Response headers carry the status,Content-Type, caching rules, redirects (Location) and security policies.Why it matters: headers reveal what is really happening. A
serverorx-cacheheader shows which layer answered,cache-controlshows whether a page may be cached, and a strayx-robots-tag: noindexheader can keep a site out of search without any visible change.Example:
curl -sI https://YOURDOMAIN.COM/prints the response headers, where YOURDOMAIN.COM is your domain. In a browser, open developer tools, Network tab, click the document request and view Headers.Common confusion: header names are case-insensitive, and HTTP/2 and HTTP/3 send them in lowercase. A header set by WordPress can be overwritten or stripped by a CDN or proxy further out.
- HTTP status code
The three-digit number a web server sends with every response to say whether the request worked, moved or failed.
Also called: status code, response code
Every HTTP response starts with a status code. The first digit gives the class:
2xxsuccess,3xxredirect,4xxa problem with the request (missing page, forbidden, too many requests),5xxa failure on the server side.Why it matters: the code tells you which layer broke before you read a single log. A
404is a content or routing problem, a403is permissions or a firewall, a500is usually PHP, and a502or504points at the connection between a proxy and the application behind it.Example:
curl -sI https://YOURDOMAIN.COM/PATHprints only the response headers, with the status on the first line, where YOURDOMAIN.COM/PATH is the page you are testing. Add-Lto follow redirects and see every hop.Common confusion: the error page a visitor sees can be styled by a CDN, host or theme, and some broken setups send a friendly error page with a
200code. Always check the actual code, not just the page wording.
I
- ImageMagick
An image processing program, used by WordPress through the PHP Imagick extension to resize and convert uploads.
Also called: Imagick
ImageMagick is image processing software. PHP reaches it through the Imagick extension, and WordPress prefers it over the GD library when both are available.
Why it matters: large photos can make ImageMagick use more memory or time than the server allows, giving
Post-processing of the image failedor an HTTP error on upload. Hosts sometimes limit ImageMagick’s resources or threads, which affects this.Example: Tools, Site Health, Info, Media Handling shows whether ImageMagick is the active editor, its version and its resource limits.
Common confusion: the program and the PHP extension are separate. ImageMagick can be installed on the server while the Imagick extension is not loaded for your site’s PHP version, so WordPress falls back to GD.
- IMAP
The protocol mail apps use to read email that stays on the server, so every device sees the same folders.
Also called: IMAP4
IMAP lets a mail app read and manage messages stored on the mail server. Changes you make on one device (read, moved, deleted) show on all the others. It normally uses port 993 with TLS, or port 143 with STARTTLS.
Why it matters: IMAP keeps mail on the server, so mailbox quotas fill up over time. When the quota is full, new mail bounces with a mailbox full error.
Example: incoming server
mail.YOURDOMAIN.COM, port 993, SSL/TLS, with your full email address as the username. YOURDOMAIN.COM is your domain; use the server name your provider gives.Common confusion: IMAP is for reading only. Sending uses SMTP with its own server, port and login settings, which is why a mail app can receive but not send.
- Indexing
A search engine storing a page in its index so it can appear in search results.
Also called: search index, search engine indexing
Indexing comes after crawling: the search engine processes the page, picks a canonical URL and decides whether to store it. Only indexed pages can rank.
Why it matters: a site that drops out of search usually has an indexing blocker: a
noindextag or header left from staging, the WordPress "Discourage search engines" setting switched on, canonical tags pointing elsewhere, or server errors when Google crawls.Example: in Search Console, URL Inspection shows whether a URL is indexed and why not, and the Pages report groups reasons such as "Excluded by 'noindex' tag". In WordPress, check Settings, Reading, Search engine visibility.
Common confusion: a
site:search is a rough check, not a full count. Requesting indexing does not guarantee it.- InnoDB
The default MySQL and MariaDB storage engine, with transactions, row-level locking and crash recovery.
Also called: InnoDB engine
InnoDB is the storage engine behind modern WordPress tables. It supports transactions, row-level locking and automatic crash recovery. The older MyISAM engine locks whole tables and is more prone to corruption after a crash.
Why it matters: old sites may still have MyISAM tables, which lock up under concurrent writes and can need repair after a crash. InnoDB data is cached in the buffer pool, so its size has a large effect on database speed.
Example:
wp db query "SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE();"lists the engine of each table.ALTER TABLE TABLENAME ENGINE=InnoDB;converts one, where TABLENAME is the table; back up first.Common confusion:
REPAIR TABLEworks on MyISAM, not InnoDB. InnoDB recovers itself on restart, and serious InnoDB corruption needs a restore from backup or specialist recovery.- Inode
A filesystem record for one file or folder; hosts often cap the number of inodes, so many tiny files can fill an account.
Also called: inodes, inode limit, disk quota, Disk quota exceeded, disk space limit
An inode stores a file’s metadata (owner, permissions, size, location on disk). Every file, folder and symlink uses one. Shared hosts usually cap inodes per account in addition to disk space.
Why it matters: you can hit the inode limit with disk space to spare. Cache plugins, session files, backup archives, unpacked updates and malware dropping thousands of files are common causes. When the limit is reached, uploads, updates, caching and email can fail with "disk quota exceeded".
Example:
df -ishows inode usage per filesystem.du --inodes -d 2 ~ | sort -n | tailshows which folders hold the most files (GNUdu).A disk quota caps an account’s space, and often its inode count. When either is full, writes fail in confusing ways: uploads and updates fail, sessions cannot be saved so logins loop, the database cannot write, and email bounces as "mailbox full".
du -sh ~/* | sort -hshows the biggest folders; old backups, large logs and a forgottendebug.logare the usual culprits.Common confusion: deleting large files frees space but few inodes. Clear cache folders, old backups and stray session files to bring the count down.
- INP
How quickly a page visibly responds to clicks, taps and key presses across a visit; good is 200 milliseconds or less.
Also called: Interaction to Next Paint
Interaction to Next Paint observes interactions during a visit and reports one of the slowest (close to the worst, ignoring rare outliers on busy pages). It measures the delay until the next frame is painted after the interaction.
Why it matters: poor INP feels like a frozen or laggy page: menus that open late, buttons that seem ignored. Causes are usually heavy JavaScript on the main thread, such as tag managers, chat widgets, sliders, page builder scripts and large DOM updates.
Example: in Chrome’s Performance panel, record while clicking and look for long tasks after the interaction. Removing or delaying third-party scripts is often the biggest win.
Common confusion: INP is a field metric needing real interactions; lab tools cannot measure it directly and use Total Blocking Time as a rough proxy.
- Intermediate certificate
A certificate that links your site's certificate to a trusted root; servers must send it along with their own.
Also called: certificate chain, chain of trust, CA bundle, fullchain
CAs sign site certificates with an intermediate certificate, which is itself signed by a root that browsers trust. The certificate chain is the ordered list: your certificate, then intermediates, ending at a root the client already has. The server must send its certificate and the intermediates; the root is not sent.
Why it matters: a missing intermediate is the classic "works in my desktop browser, fails on some phones, in curl or in payment gateway callbacks" problem. Desktop browsers often fill the gap from cache or by fetching it; other clients do not.
Example:
openssl s_client -connect YOURDOMAIN.COM:443 -servername YOURDOMAIN.COM -showcertslists each certificate the server sends, where YOURDOMAIN.COM is your domain. With Certbot, configure the server withfullchain.pem, notcert.pem.Common confusion: "CA bundle" in a hosting panel means the intermediates. Pasting the root or the wrong order rarely helps; paste the intermediates the CA provided.
- IPv6
The newer form of internet address, such as 2001:db8::10, published in DNS as an AAAA record.
Also called: IPv6 address, IPv6 addresses
IPv6 addresses are 128 bits long and written in hexadecimal groups, such as
2001:db8::10. They live alongside the older IPv4 addresses. A site reachable over IPv6 has an AAAA record in DNS.Why it matters: many mobile and home networks prefer IPv6. If an AAAA record points at an old server, those visitors reach the wrong place while IPv4 users are fine. Let’s Encrypt also validates over IPv6 when an AAAA record exists, so a stale one breaks certificate renewal.
Example:
dig +short AAAA YOURDOMAIN.COMshows any IPv6 address for your domain. If your new host gave you only an IPv4 address, delete the old AAAA record.Common confusion: "works on my phone, not on Wi-Fi" can be IPv6 rather than a firewall: one network may use IPv6 and the other IPv4. Compare what each one resolves.
J
- jQuery
A JavaScript library that WordPress ships with and that many themes, sliders and plugins depend on.
jQuery is a JavaScript library for page interactions. WordPress includes it, and many themes and plugins load scripts that need it to run first.
Why it matters: when a speed plugin defers, delays or combines JavaScript, scripts can run before jQuery has loaded. The console shows
Uncaught ReferenceError: jQuery is not definedor$ is not a function, and menus, sliders and forms stop working.Example: open developer tools, Console, reload the page and look for those errors. Excluding jQuery (and the script that fails) from delay or defer in the optimization plugin usually fixes it.
Common confusion: the fix is the load order, not reinstalling jQuery. Old plugins written for very old jQuery versions can also break on the modern version WordPress ships; the console names the file.
L
- Lazy loading
Delaying images and iframes until they are about to scroll into view, saving data and speeding up the initial load.
Also called: lazy load, loading="lazy"
Lazy loading uses the native
loading="lazy"attribute on images and iframes so the browser fetches them only when they near the viewport. WordPress adds it automatically to most images and tries to skip the first ones likely to be visible.Why it matters: lazy loading the hero or other above-the-fold image delays LCP, a common self-inflicted slowdown, especially when a plugin also adds its own JavaScript lazy loading on top.
Example: make sure the LCP image does not have
loading="lazy"and, ideally, hasfetchpriority="high". Check the HTML source, since some optimization plugins rewritesrcintodata-src.Common confusion: JavaScript lazy loading hides images from browsers until scripts run. Native lazy loading is simpler and works without JavaScript.
- LCP
How long until the biggest image or text block in view finishes rendering; good is 2.5 seconds or less.
Also called: Largest Contentful Paint
Largest Contentful Paint marks when the largest visible element (usually a hero image, a video poster or a large heading) is rendered. It reflects perceived loading speed.
Why it matters: slow LCP usually comes from a slow server response (TTFB), the LCP image being discovered late (CSS backgrounds, sliders, lazy loading), render-blocking CSS and JavaScript, or an oversized image.
Example: Lighthouse and the Performance panel name the LCP element. Make sure that image is in the HTML, not lazy loaded, sized properly, and marked
fetchpriority="high", for example<img src="HERO.webp" fetchpriority="high" width="1200" height="600" alt="...">, where HERO.webp is the image.Common confusion: the LCP element can differ between mobile and desktop, and between visitors, so field data may disagree with a single lab test.
- Let's Encrypt
A free, automated, nonprofit certificate authority that issues domain-validated TLS certificates through the ACME protocol.
Also called: LetsEncrypt
Let’s Encrypt issues free domain-validated certificates, renewed automatically by ACME clients such as Certbot or by your host’s control panel. Its default certificates have been valid for 90 days; it has announced a staged move to shorter lifetimes, reaching 45 days by 2028, and it already offers shorter opt-in profiles.
Why it matters: if automatic renewal silently fails, the certificate expires and the site shows a security warning. Typical causes are DNS pointing elsewhere, a redirect or firewall blocking the HTTP-01 challenge path, a CAA record that excludes Let’s Encrypt, or hitting rate limits from repeated failed attempts.
Example:
certbot certificateslists certificates and expiry dates on servers using Certbot, andcertbot renew --dry-runtests renewal without issuing. On managed hosting, the control panel’s SSL section shows the renewal error.Common confusion: Let’s Encrypt has stopped running OCSP and relies on certificate revocation lists, so OCSP stapling settings do nothing for its certificates. It issues only domain-validated certificates, not organization or extended validation.
- LiteSpeed
A commercial web server compatible with Apache's .htaccess rules, with a built-in page cache used by the LiteSpeed Cache plugin.
Also called: LiteSpeed Web Server, LSWS, OpenLiteSpeed
LiteSpeed Web Server is a drop-in replacement for Apache common on shared hosting. It reads
.htaccess, runs PHP through its own LSAPI, and includes a server-level page cache controlled from WordPress by the LiteSpeed Cache plugin. OpenLiteSpeed is the free edition, which reads.htaccessrewrites only after a restart.Why it matters: LiteSpeed Cache serves pages from the server before PHP runs, so changes may not appear until the cache is purged, and logged-in or cart behavior depends on correct cache vary rules. Its own error pages, such as 503 or 508, often indicate resource limits.
Example: response headers like
x-litespeed-cache: hitshow a page came from cache. Purge from the LiteSpeed Cache toolbar menu or withwp litespeed-purge allif the plugin’s WP-CLI commands are available.Common confusion: the LiteSpeed Cache plugin’s page caching only works on a LiteSpeed server, though some of its other features, like image optimization, work anywhere.
- Localhost
The name a computer uses for itself. In wp-config.php, DB_HOST localhost means the database is on the same server.
Also called: 127.0.0.1
localhost refers to the machine you are on. Its IPv4 address is
127.0.0.1and its IPv6 address is::1. On a web server,DB_HOSTset tolocalhostmeans the database runs on that same server.Why it matters: MySQL and MariaDB clients treat
localhostspecially and connect through a local socket file, while127.0.0.1uses a network connection. Database users can be granted access for one and not the other, so swapping them can cause "Error establishing a database connection".Example: in
wp-config.php,define( 'DB_HOST', 'localhost' );. Some hosts use a separate database server and give you a hostname or IP to use instead. Use exactly what your host shows.Common confusion: a site built "on localhost" in a local development tool runs only on your computer. Nobody else can see it until it is moved to a real server.
- Loopback request
A request WordPress makes to its own site over HTTP, used for scheduled tasks and safety checks.
Also called: loopback requests
A loopback request is WordPress calling its own address, as if it were a visitor. WP-Cron uses one to run scheduled tasks, and the theme and plugin file editors use one to check that an edit did not break the site.
Why it matters: if the server cannot reach itself (a firewall, wrong DNS on the server, HTTP authentication on staging, or a security plugin blocking it), scheduled posts are missed, background jobs stall, and Site Health reports
Your site could not complete a loopback request.Example:
curl -sI https://YOURDOMAIN.COM/wp-cron.phprun on the server itself over SSH, where YOURDOMAIN.COM is your domain, shows whether the server can reach its own site. A timeout or a 401 or 403 explains the failure.Common confusion: the site can work perfectly for visitors while loopback fails, because the request comes from inside the server, often to a different IP or through a different route.
M
- Malware
Malicious code planted on a site to steal data, redirect visitors, send spam or keep an attacker's access.
Also called: malicious code, website malware
Malware on websites includes injected JavaScript that redirects visitors or skims card numbers, PHP files that run attacker commands, spam pages, and code that sends email. It usually arrives through a vulnerable plugin or theme, stolen credentials, or another compromised site on the same account.
Why it matters: it can get the site flagged by browsers and search engines, blocklist the server’s IP for email, leak customer data, and come straight back after cleanup if the entry point and every backdoor are not removed.
Example:
wp core verify-checksumsandwp plugin verify-checksums --allflag modified core and plugin files, andfind wp-content -name "*.php" -newer wp-config.phplists PHP files changed more recently thanwp-config.php. Neither catches everything.Common confusion: a clean scan does not prove a site is clean. Malware hides in the database, in
mu-plugins, in.htaccessand in files with innocent names, and may show only to search engines or first-time visitors.- Manual action
A penalty applied by a human reviewer at Google when a site breaks its spam policies, shown in Search Console.
Also called: manual penalty, Google penalty
A manual action is a reviewer’s decision that pages or a whole site violate Google’s spam policies, for example through user-generated spam, hacked content, unnatural links, thin content or cloaking. Affected pages rank lower or are removed.
Why it matters: it is listed under Security and Manual actions in Search Console with the reason and examples. Nothing improves until the issue is fixed and a reconsideration request is approved.
Example: fix every instance (not just the examples shown), document what you did, then submit a reconsideration request explaining the cause, the fix and how you will prevent it. Reviews can take days or weeks.
Common confusion: most ranking drops are not manual actions; they come from algorithm updates or technical problems. If the Manual actions report says no issues, look elsewhere.
- max_execution_time
The most seconds a PHP script may run before PHP stops it, commonly 30 seconds for web requests.
Also called: maximum execution time, Maximum execution time exceeded
max_execution_time is a
php.inisetting. When a web request runs longer, PHP stops it with "Maximum execution time of SECONDS seconds exceeded", where SECONDS is the limit. The command line has no limit by default.Why it matters: imports, backups, large updates and slow external calls hit this limit and leave half-finished work. Proxies and web servers have their own timeouts too, and the shortest one wins, often showing as a 504 instead of a PHP error.
Example: run long jobs with WP-CLI over SSH instead of in the browser, for example
wp import FILE.xml --authors=create, where FILE.xml is the export file.Common confusion: on Linux, time spent waiting for the database or network is not counted toward this limit, so a request can run far longer than the setting before something else (usually a proxy timeout) cuts it off.
- max_input_vars
A PHP setting that limits how many form fields one request can send, 1000 by default. Large menus and builders hit it.
Also called: max input vars
max_input_vars caps the number of input variables PHP accepts in a single request. The default is 1000. Anything past the limit is dropped, and PHP may log
Input variables exceeded 1000.Why it matters: saving a large menu, a WooCommerce product with many variations, or a complex page builder layout can send more fields than that. The save looks successful, but items at the end silently disappear.
Example:
wp eval 'echo ini_get("max_input_vars"), "\n";'over SSH shows the limit WP-CLI sees; confirm under Tools, Site Health, Info, Server. Raise it in the hosting panel’s PHP settings or.user.ini, for example to 3000 or 5000.Common confusion: it cannot be raised with
ini_set()inwp-config.php, because PHP reads it before WordPress starts. It is also unrelated to memory: raisingmemory_limitdoes not help.- Memcached
An in-memory store some hosts use as a WordPress object cache, keeping database results in RAM for reuse.
Also called: memcache
Memcached is a fast key and value store held in memory. With an
object-cache.phpdrop-in, WordPress can keep the results of database queries there between requests, like it can with Redis.Why it matters: it speeds up busy and logged-in pages, but a misconfigured or shared instance can serve stale data, mix up two sites that use the same cache keys, or fill up and evict items constantly.
Example:
wp cache typeover SSH reports which object cache is in use.wp cache flushempties it after a migration or when settings refuse to change.Common confusion: everything in Memcached disappears on restart, by design. It is a cache, never a place to keep data you need, and it is different from a page cache.
- memory_limit
The most memory one PHP request may use; going over it stops the request with a fatal error.
Also called: PHP memory limit, WP_MEMORY_LIMIT, Allowed memory size exhausted
memory_limit is a
php.inisetting such as256M. WordPress also hasWP_MEMORY_LIMIT(defaults to 40M, or 64M on multisite) andWP_MAX_MEMORY_LIMIT(256M by default, used in the admin), which can raise PHP’s limit at runtime but cannot exceed what the host allows.Why it matters: the error "Allowed memory size of BYTES bytes exhausted (tried to allocate MORE bytes)" means a request hit the cap, where BYTES is the limit. It usually shows as a white screen, a 500 error or a critical error message, and is common with large imports, page builders and image processing.
Example: in
wp-config.php, above the "stop editing" line,define( 'WP_MEMORY_LIMIT', '256M' );. Check the effective value in Tools, Site Health, Info, Server.Common confusion: raising the limit treats the symptom. If a page needs 1 GB of memory, something is loading far too much data, often an autoloaded option, a huge query or a plugin loop.
- Minification
Removing spaces, comments and other unneeded characters from CSS, JavaScript or HTML to make files smaller.
Also called: minify, minified
Minification rewrites code into a compact form without changing what it does. Build tools, CDNs and optimization plugins do it automatically.
Why it matters: it saves some bytes, but plugin minification is a common cause of broken sites: a script that breaks when combined with others, a missing semicolon, or a stale minified file served from cache after an update.
Example: if a layout or menu breaks after enabling optimization, turn off JavaScript minification and combining first, purge every cache, and check the browser console for errors. Re-enable options one at a time.
Common confusion: minification adds much less than compression (gzip or Brotli) already gives. Combining files is often unnecessary over HTTP/2.
- Mixed content
An HTTPS page that loads some resources over plain HTTP, which browsers upgrade, block or warn about.
Also called: mixed content warning
Mixed content happens when a secure page includes
http://images, scripts, styles, fonts or iframes. Browsers block insecure scripts, styles and frames, and try to upgrade images, audio and video to HTTPS, blocking them if the upgrade fails.Why it matters: after switching a site to HTTPS, old
http://URLs stored in posts, theme settings and page builder data cause broken layouts, missing images and a missing padlock. Blocked scripts can break menus, sliders and checkout.Example: the browser console lists each blocked URL. On WordPress, fix the stored data with
wp search-replace 'http://YOURDOMAIN.COM' 'https://YOURDOMAIN.COM' --all-tables --dry-run, then run it again without--dry-run, after a backup. YOURDOMAIN.COM is your domain.Common confusion: plugins that rewrite URLs on the fly hide the problem but leave old data in the database. The header
Content-Security-Policy: upgrade-insecure-requestsis a valid stopgap, but fixing the stored URLs is the real fix.- ModSecurity
A widely used open source web application firewall engine that runs inside web servers like Apache and Nginx.
Also called: mod_security, modsec
ModSecurity inspects requests using rule sets, commonly the OWASP Core Rule Set or a commercial set from the host. Matching requests are logged and can be blocked, usually with a 403 or 406 response.
Why it matters: it is a frequent cause of "it works for me but this one form or save button returns 403" on shared hosting. Posts containing SQL-like text, script tags or long encoded strings can trip rules.
Example: hosts log hits to an audit log with an ID like
[id "RULEID"], where RULEID is the number of the rule that fired. Give your host the time, your IP and the URL so they can find it and exclude that rule for that path.Common confusion: disabling ModSecurity in
.htaccessis not possible on many modern setups and is a bad idea if it is. Ask for a targeted exclusion.- mod_rewrite
The Apache module that rewrites or redirects URLs using pattern-matching rules, used for WordPress permalinks.
Also called: RewriteRule, RewriteCond
mod_rewrite processes
RewriteCondconditions andRewriteRulerules, usually in.htaccess. Rules can silently map a pretty URL toindex.php, or send a visible redirect with a flag like[R=301,L].Why it matters: WordPress pretty permalinks depend on it on Apache and LiteSpeed. If it is disabled or the rules are missing, every post returns 404 while the home page works. Bad rules cause redirect loops.
Example: forcing HTTPS:
RewriteCond %{HTTPS} offfollowed byRewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]. Behind a CDN or proxy that connects over HTTP, this loops forever; checkX-Forwarded-Protoinstead.Common confusion: rule order matters, and the
[L]flag only stops the current pass, not all rewriting. Put redirects above the WordPress block.- MTA-STS
A policy that tells sending mail servers to require valid TLS when delivering to your domain's mail servers.
Also called: SMTP MTA Strict Transport Security
MTA-STS has two parts: a TXT record at
_mta-sts.YOURDOMAIN.COMwith anid, and a policy file served over HTTPS athttps://mta-sts.YOURDOMAIN.COM/.well-known/mta-sts.txt, where YOURDOMAIN.COM is your domain. The policy lists your MX hosts and a mode:testing,enforceornone.Why it matters: in
enforcemode, senders that support it will not deliver if your MX certificate is invalid or the MX host is not listed. Changing email providers without updating the policy can make inbound mail fail.Example: the policy file contains lines like
version: STSv1,mode: enforce,mx: MX.PROVIDER.COMandmax_age: 604800, where MX.PROVIDER.COM is your mail host. Change the TXTidwhenever the policy changes.Common confusion: the
mta-stssubdomain needs its own valid HTTPS certificate. TLS-RPT (a_smtp._tlsTXT record) is the separate reporting companion.- Multisite
A WordPress mode that runs many sites from one installation and one database, managed by a network admin.
Also called: WordPress Multisite, network install
Multisite turns one WordPress install into a network of sites, using subdomains or subfolders. Sites share core, plugins and themes and one database, with separate tables per site (for example
wp_2_posts).Why it matters: a network-activated plugin that crashes takes down every site. Domain changes and migrations are harder because URLs live in network tables (
wp_site,wp_blogs,wp_sitemeta) and in each site’s options.Example:
wp site listshows every site, and WP-CLI commands take--url=SITE.URLto target one, where SITE.URL is that site’s address. Search-replace across a network uses--network.Common confusion: only Super Admins can install plugins or themes on a network. Subdomain networks need wildcard DNS and a certificate that covers every site name.
- Must-use plugins
Plugins in wp-content/mu-plugins that WordPress always loads first and that cannot be deactivated from the admin.
Also called: mu-plugins, MU plugin, must-use plugin
Must-use plugins are PHP files placed directly in
wp-content/mu-plugins/. WordPress loads them automatically before normal plugins, and they appear only under a separate "Must-Use" list in the Plugins screen.Why it matters: hosts use them for caching, security and platform features. Malware also hides here, because files do not show in the normal plugin list and cannot be switched off from wp-admin. A broken mu-plugin crashes every page.
Example:
ls -la wp-content/mu-plugins/lists them. To disable one in an emergency, move it out of the folder, for example to amu-plugins-disabledfolder.Common confusion: WordPress does not load mu-plugins from subfolders automatically. A plugin folder placed in
mu-pluginsneeds a small loader file at the top level.- MX record
A DNS record that tells other mail servers which servers accept email for your domain, in order of preference.
Also called: MX, mail exchanger record
An MX record lists the mail servers for a domain, each with a priority number. Lower numbers are tried first. Example:
example.com. MX 10 mx1.mailhost.example.andexample.com. MX 20 mx2.mailhost.example..When email stops arriving after a DNS or hosting change, the MX records are usually why: they were lost when nameservers moved, or they still point at the old host. Outgoing mail and website hosting are unaffected, which makes the problem easy to miss.
Example check:
dig YOURDOMAIN.COM MX +short, where YOURDOMAIN.COM is your domain. Compare the answer with what your email provider’s setup page says.Common confusions: the MX target must be a hostname with A or AAAA records, never an IP address and never a CNAME. MX controls inbound mail only; outgoing authentication is SPF, DKIM and DMARC.
- MySQL
The database server WordPress stores its content in; MariaDB is a compatible fork used by many hosts.
Also called: MariaDB, MySQL server
MySQL and MariaDB are relational database servers. MariaDB began as a fork of MySQL and remains largely compatible, so WordPress runs on either. Posts, users, settings, orders and most plugin data live here; files and media do not.
Why it matters: if the database server is down, overloaded, out of connections or out of disk, WordPress shows "Error establishing a database connection". Crashed tables, especially old MyISAM ones, can cause missing content or errors until repaired.
Example:
wp db checkruns a table check using the credentials inwp-config.php, andwp db query "SELECT VERSION();"shows which server and version you are on.Common confusion: the two have drifted apart in newer versions. Dumps from MySQL 8 can use a default collation (
utf8mb4_0900_ai_ci) that MariaDB does not recognize, causing "Unknown collation" errors on import.- mysqldump
The standard command-line tool for exporting a MySQL or MariaDB database to an SQL file for backup or migration.
Also called: database dump, SQL dump
mysqldump writes a database out as SQL statements that recreate the tables and data. MariaDB ships the same tool, also called
mariadb-dump. WP-CLI’swp db exportcalls it using the credentials fromwp-config.php.Why it matters: a database dump is the heart of any WordPress backup or move. A dump taken without care can lock tables on a busy site or capture an inconsistent state.
Example:
mysqldump --single-transaction --default-character-set=utf8mb4 -u DBUSER -p DBNAME > BACKUP.sql, where DBUSER and DBNAME come fromwp-config.phpand BACKUP.sql is the output file.--single-transactiongives a consistent snapshot of InnoDB tables without locking them.Common confusion: never pass the password on the command line where other users can see it in the process list; use
-pto be prompted or an option file. Store dumps outside the web root, since they contain password hashes and customer data.
N
- Nameserver
A server that answers DNS questions; your domain's nameservers hold its records and are set at your registrar.
Also called: name server, nameservers, authoritative DNS, authoritative nameserver, authoritative server
A nameserver answers DNS queries. The term covers two jobs: authoritative nameservers that hold the official records for a domain, and resolvers that look things up on behalf of users. When people say "change your nameservers", they mean the authoritative ones listed at your registrar.
Why it matters: the nameservers decide which DNS dashboard is real. If they point at your old host, edits at your new host are ignored. If they point at servers that no longer serve your zone, the whole domain stops resolving, including email.
Example:
dig YOURDOMAIN.COM NS +shortlists them, where YOURDOMAIN.COM is your domain. Typical values look likens1.provider.exampleandns2.provider.example.When debugging, ask the authoritative servers directly:
dig @NS1.PROVIDER.COM YOURDOMAIN.COM A, where NS1.PROVIDER.COM is one of your listed nameservers. Look foraa(authoritative answer) in the flags. If they return the right value, any remaining problem is caching; if they return the wrong value or do not answer, the zone or delegation is broken.Common confusion: nameserver changes go through the registry and can take hours to be seen everywhere because the parent NS records are often cached for a day or two.
- Nginx
A fast web server and reverse proxy that does not read .htaccess; its rules live in server configuration files.
Also called: nginx.conf
Nginx is a high-performance web server, reverse proxy and load balancer. It hands PHP requests to PHP-FPM and handles static files itself. All rules live in central configuration files that require a reload to apply.
Why it matters:
.htaccessfiles are ignored on Nginx, so security rules, redirects and caching headers written by plugins for Apache do nothing. WordPress permalinks need atry_files $uri $uri/ /index.php?$args;rule, or every page except the home page returns 404.Example:
nginx -ttests the configuration syntax before reloading, which prevents a typo from taking every site on the server down. Errors from PHP show in the Nginx error log as "FastCGI sent in stderr".Common confusion: Nginx often sits in front of Apache as a reverse proxy. In that setup
.htaccessstill works for the Apache part, but some headers and caching are controlled by Nginx.- noindex
A tag or header telling search engines not to include a page in search results.
Also called: meta robots noindex, X-Robots-Tag
noindex is set with
<meta name="robots" content="noindex">in the page head, or with anX-Robots-Tag: noindexHTTP header (useful for PDFs and other files).Why it matters: a noindex left on after launch, set by an SEO plugin on a whole post type, or added sitewide by the "Discourage search engines" setting removes pages from search over time.
Example:
curl -s https://YOURDOMAIN.COM/ | grep -i noindexandcurl -sI https://YOURDOMAIN.COM/ | grep -i x-robotscheck both places, where YOURDOMAIN.COM is your domain.Common confusion: for noindex to work, the page must be crawlable. Blocking it in robots.txt hides the noindex from Google.
- Nonce
A short-lived token WordPress adds to forms and links to check a request was intended by the logged-in user.
Also called: WordPress nonce, wpnonce
A WordPress nonce is a token tied to a user, an action and a time window, sent as a field like
_wpnonce. It protects against cross-site request forgery. By default a nonce is valid for 12 to 24 hours.Why it matters: when a page is cached with a nonce in it, users later get "The link you followed has expired" or "Cookie check failed", or forms and AJAX quietly return
-1or 403. That is a classic sign of page caching applied to dynamic content.Example: if a form on a cached page fails after a day, exclude that page from the cache or have the form fetch a fresh nonce with AJAX.
Common confusion: despite the name, a WordPress nonce can be used more than once within its window. It is not authentication; capability checks are still required.
- NS record
A DNS record that names the nameservers responsible for a domain or a delegated subdomain.
Also called: NS records, name server record
NS records say which servers are authoritative for a zone. They exist in two places: at the parent (the registry for your TLD, set through your registrar) and inside your own zone. The parent copy is what the world actually follows.
When the NS records at the registrar point at provider A but you are editing records at provider B, none of your changes will ever show up. This is one of the most common causes of "I changed DNS and nothing happened".
Example:
dig YOURDOMAIN.COM NS +shortshows what resolvers see, andwhois YOURDOMAIN.COMor an RDAP lookup shows the nameservers set at the registrar. YOURDOMAIN.COM is your domain.Common confusion: changing nameservers moves your whole zone. Any records you did not recreate at the new provider (MX, TXT, subdomains) disappear the moment the change is picked up.
- NXDOMAIN
A DNS response meaning the name you asked about does not exist at all.
Also called: non-existent domain
NXDOMAIN is the DNS response code for "no such name". It differs from a name that exists but has no record of the type you asked for (often called NODATA, which returns no error with an empty answer).
Why it matters: an NXDOMAIN for your own domain often means it has expired, was put on hold by the registry, or its nameservers do not have the zone. For a subdomain, it usually means the record was never created or was lost in a DNS move. Browsers show messages such as
DNS_PROBE_FINISHED_NXDOMAIN.Example:
dig SUB.YOURDOMAIN.COM Ashowsstatus: NXDOMAINin the header when the name is missing, where SUB.YOURDOMAIN.COM is the name being tested.Common confusion: NXDOMAIN answers are cached too, for the time set in the SOA record. A record you just created can keep returning NXDOMAIN to a resolver that asked moments before.
O
- Object cache
A WordPress cache for database query results; with Redis or Memcached it persists between page loads.
Also called: persistent object cache
WordPress has a built-in object cache (
wp_cache_get()andwp_cache_set()) that stores results in memory for one request. A persistent object cache, enabled by anobject-cache.phpdrop-in and a service like Redis or Memcached, keeps those results across requests, cutting database load for uncached pages.Why it matters: it speeds up logged-in users, WooCommerce and admin screens. When it breaks, symptoms include stale settings that will not change, users logged out, or fatal errors if the cache server is unreachable. A cloned site sharing a cache with its source can show the other site’s data.
Example:
wp cache flushempties it. If the cache server is gone, renamewp-content/object-cache.phpto disable the drop-in.Common confusion: an object cache does not cache whole pages; that is a page cache. Sites sharing one Redis server need distinct key prefixes or databases.
- OCSP
A protocol for checking whether a certificate has been revoked, now being phased out in favor of revocation lists.
Also called: Online Certificate Status Protocol, OCSP stapling
OCSP (Online Certificate Status Protocol) lets a client ask the CA whether a certificate was revoked. OCSP stapling has the server fetch and attach that answer itself, saving the browser a lookup and protecting privacy.
Why it matters: the industry is moving away from OCSP. Let’s Encrypt shut down its OCSP service in 2025 and relies on certificate revocation lists (CRLs), which browsers aggregate. Servers configured to require stapling may log warnings for certificates without an OCSP URL.
Example: in Nginx,
ssl_stapling on;has no effect for a certificate without an OCSP URL.openssl x509 -in CERT.PEM -noout -ocsp_urishows whether a certificate file has one, where CERT.PEM is the certificate file.Common confusion: major browsers do not rely on live OCSP checks for normal certificates, so a slow or failing OCSP responder rarely explains a site outage on its own.
- OPcache
A PHP feature that keeps compiled PHP code in memory so it does not have to be recompiled on every request.
Also called: opcode cache
OPcache stores the compiled version of PHP files in shared memory. It is built into PHP and is one of the biggest free speedups for WordPress.
Why it matters: with
opcache.validate_timestampsoff, or with a longopcache.revalidate_freq, PHP keeps running the old compiled code after you edit or replace a file. Fixes that "did nothing" and errors that persist after you removed the bad file are often stale OPcache.Example: restarting or reloading PHP-FPM clears OPcache for that pool.
php -i | grep opcacheshows CLI settings, which can differ from the web server’s; check the web settings in Site Health or a temporary phpinfo page you delete right after.Common confusion: OPcache caches code, not pages or database results. It is unrelated to page cache and object cache plugins, and the OPcache used by the command line is separate from the web server’s.
- Open Graph
Meta tags that tell Facebook, LinkedIn, chat apps and others which title, description and image to show when a link is shared.
Also called: Open Graph tags, og:image, og:title, OG tags
The Open Graph protocol defines meta tags in the page head, such as
og:title,og:description,og:urlandog:image. Social networks and messaging apps read them to build the link preview.Why it matters: without them, platforms guess, often picking a logo, a tiny icon or nothing. Platforms also cache previews, so a fixed tag can keep showing the old image until the platform scrapes the page again.
Example:
curl -s https://YOURDOMAIN.COM/PAGE/ | grep -io '<meta property="og:[^>]*>'lists the tags on a page, where YOURDOMAIN.COM and PAGE are your domain and path. Then use Facebook’s Sharing Debugger or LinkedIn’s Post Inspector to fetch a fresh preview.Common confusion: two plugins each printing Open Graph tags (an SEO plugin and a social plugin) produce conflicting images. Keep one source. The image URL must be public and absolute, not blocked by robots.txt or hotlink protection.
- Origin certificate
A free certificate from Cloudflare for your server that only Cloudflare trusts, used with Full (strict) mode.
Also called: Origin CA certificate, Cloudflare Origin CA, origin certificates
A Cloudflare Origin CA certificate secures the connection between Cloudflare and your origin server. You create it in the Cloudflare dashboard under SSL/TLS, Origin Server, install it on your server, and choose a validity of up to 15 years.
Why it matters: it lets you use Full (strict) mode without renewing a public certificate on the server, which removes a common cause of error 526.
Example: after installing it,
curl -sI --resolve YOURDOMAIN.COM:443:SERVER_IP https://YOURDOMAIN.COM/fails with a certificate error, because curl does not trust it. That is expected; only Cloudflare does. YOURDOMAIN.COM is your domain and SERVER_IP your server’s IP.Common confusion: browsers do not trust Origin CA certificates. If you switch a record to DNS only (gray cloud) or pause Cloudflare, visitors get
NET::ERR_CERT_AUTHORITY_INVALID. Keep the proxy on, or use a public certificate instead.- Origin server
The server that actually hosts your site, which a CDN or proxy fetches from when it does not have a cached copy.
Also called: origin servers
The origin server runs your application (for example WordPress on PHP and MySQL) and holds the real files. CDNs, reverse proxies and load balancers sit in front of it and forward requests they cannot answer from cache.
Why it matters: when a CDN shows a 52x or 50x error, the question is whether the origin is up and reachable from the CDN. Testing the origin directly, bypassing the CDN, splits the problem in half.
Example:
curl -sI --resolve YOURDOMAIN.COM:443:ORIGIN.IP https://YOURDOMAIN.COM/connects straight to ORIGIN.IP (your server’s IP) while sending the right hostname, where YOURDOMAIN.COM is your domain.Common confusion: "origin" in CORS means scheme, host and port of a page, which is a different idea from the origin server.
P
- Page cache
A saved copy of a fully built page served to visitors without running PHP or the database again.
Also called: full-page cache, page caching
A page cache stores the final HTML of a page and serves it to the next visitors. It can live in a plugin (often via
advanced-cache.php), the web server (LiteSpeed, Nginx FastCGI cache, Varnish) or a CDN.Why it matters: it is the biggest single performance and capacity win for most sites. It is also why a fix "does not show": visitors keep getting the old cached page until it is purged. Caching pages that should be personal, such as cart or account pages, leaks one user’s content to another.
Example: headers like
x-cache: HIT,cf-cache-status: HITorx-litespeed-cache: hitshow a cached response. Purge every layer after a change: plugin, server and CDN.Common confusion: logged-in users usually bypass the page cache, so the site may look fixed to you and broken to visitors, or the other way round. Check in a private window.
- Payment gateway
The service that takes card or wallet payments for your store and tells your site whether each payment worked.
Also called: payment gateways, payment processor, payment processors
A payment gateway (Stripe, PayPal, Square and many others) handles the card or wallet payment. In WooCommerce, a gateway plugin connects the checkout to the gateway’s API with API keys, and the gateway reports results back, often through webhooks.
Why it matters: most "paid but the order is still pending" problems are a broken link between the gateway and the site: wrong or test keys, a blocked webhook, or a signing secret that changed. The gateway dashboard shows what really happened to each payment.
Example: look up a failed order’s payment ID in the gateway dashboard and read the decline reason and webhook delivery attempts for it.
Common confusion: with modern gateways the card number goes to the gateway, not to your server. That reduces your risk but does not remove it: a skimmer on the checkout page can still capture what the customer types.
- Permalinks
The URL structure WordPress uses for posts and pages, turned into rewrite rules that map URLs to content.
Also called: permalink, pretty permalinks, rewrite rules, flush rewrite rules
Permalinks are the permanent URLs of posts and pages, set in Settings, Permalinks (for example
/%postname%/). WordPress stores the matching rewrite rules in therewrite_rulesoption and relies on the web server sending unknown URLs toindex.php.Why it matters: if the server rule is missing (no
.htaccessrules on Apache or LiteSpeed, notry_fileson Nginx), every page but the home page returns 404. If a plugin adds a custom post type and the rules were not refreshed, its URLs return 404.Example: save Settings, Permalinks without changing anything, or run
wp rewrite flush(add--hardto also rewrite.htaccesswhere possible).wp rewrite listshows the current rules.Common confusion: changing the permalink structure on an established site changes every URL. Add redirects from the old pattern or you lose links and search traffic.
- Phishing kit
A ready-made bundle of fake login pages that criminals upload to hacked sites to steal passwords and card details.
Also called: phishing page
A phishing kit is a zip of HTML, PHP and images imitating a bank, email provider or delivery company, plus a script that emails or posts stolen credentials to the attacker. Kits are often dropped into deep or oddly named folders on compromised sites.
Why it matters: hosting a phishing page gets your domain flagged by Safe Browsing, blocked by email filters and reported to your host, who may suspend the account. The site itself can look completely normal.
Example: look for recently added folders and zip files:
find ~/public_html -newermt "YYYY-MM-DD" -type flists files modified since that date, where YYYY-MM-DD is when trouble started. Abuse reports usually include the exact phishing URL.Common confusion: deleting the kit is not enough. Find and close how it was uploaded, or the next one appears.
- PHP
The programming language WordPress and most of its plugins are written in, run on the server for each uncached page.
Also called: PHP version
PHP runs on the web server and builds pages on the fly. WordPress, its themes and plugins are PHP code, and the PHP version (for example 8.2 or 8.3) controls what code will run and how fast.
Why it matters: changing the PHP version is one of the most common causes of sudden fatal errors. Old plugins using removed functions break on newer PHP; newer plugins requiring modern syntax break on older PHP. Running an end-of-life PHP version also means no security fixes.
Example:
wp --infoor Tools, Site Health, Info, Server in WordPress shows the PHP version the site runs. Note that the command-linephp -vcan report a different version than the web server uses.Common confusion: each PHP version has separate settings (
php.ini) and extensions. Switching versions can drop an extension a plugin needs, such asimagickorintl.- PHP-FPM
The service that keeps a pool of PHP processes running and hands them requests from the web server.
Also called: php fpm, FastCGI Process Manager
PHP-FPM (FastCGI Process Manager) runs PHP as a separate service. The web server (Nginx, Apache or others) passes each PHP request to an FPM pool, which hands it to a worker process. Pool settings such as
pm.max_childrencap how many requests run at once.Why it matters: if FPM is down, the web server returns 502 Bad Gateway. If every worker is busy, new requests queue and eventually time out with 504 or 503. Slow plugins tie up workers, so a small amount of traffic can exhaust the pool.
Example: the FPM log warning "server reached pm.max_children setting (NUMBER), consider raising it" means the pool hit its worker cap, where NUMBER is the configured limit. Raising the cap without enough memory can make things worse.
Common confusion: each pool usually has its own user and settings, and restarting or reloading FPM is the usual way to clear stuck workers and apply new
php.inivalues.- phpMyAdmin
A web tool, usually opened from the hosting panel, for browsing, editing, exporting and importing a MySQL or MariaDB database.
phpMyAdmin gives you the WordPress database in a browser: tables, rows, an SQL box, and export and import. Most hosting panels include it.
Why it matters: when you have no SSH, it is how you fix the site address in
wp_options, reset a password, or check the table prefix. It is also the easiest way to delete the wrong thing, because there is no undo.Example: before any change, select the database, click Export, and save a copy. To fix the site address, edit the
siteurlandhomerows in the options table, using your real table prefix.Common confusion: imports through phpMyAdmin are limited by PHP upload size and execution time, so large databases fail part way. Import big files over SSH or with your host’s tools instead.
- PHP session
Data a site keeps about one visitor between page loads, linked to them by a cookie. WooCommerce uses its own version for carts.
Also called: PHP sessions, WooCommerce session, WooCommerce sessions, PHPSESSID
A session remembers a visitor across requests. PHP’s built-in sessions start with
session_start()and set aPHPSESSIDcookie. WordPress core does not use them. WooCommerce has its own session system, stored in thePREFIX_woocommerce_sessionstable and linked by awp_woocommerce_session_cookie.Why it matters: if a cache serves the cart or checkout to everyone, or strips the session cookie, carts empty and customers see
Sorry, your session has expired. A plugin that starts a PHP session on every request can also block page caching and break loopback and REST API requests.Example: Site Health warns
An active PHP session was detectedwhen a plugin callssession_start()without closing it. Deactivate plugins one at a time to find it.Common confusion: a session is not a login. Logged-in users are identified by WordPress authentication cookies; a session can exist for a guest with a cart.
- PHP worker
One PHP process that handles one request at a time; the number of workers caps how many uncached requests run at once.
Also called: PHP workers, PHP process
A PHP worker is a single PHP process. It takes one request, runs WordPress to produce the page, then moves on. Hosts often advertise plans by worker count.
Why it matters: cached pages do not use a worker, but logged-in users, carts, checkouts, searches, admin-ajax calls, REST requests and bots hitting uncached URLs all do. If every worker is busy with slow requests, everyone else waits, and the site looks down even though CPU may not be maxed.
Example: if four workers each take 2 seconds per request, the site can finish at most about two uncached requests per second. Making requests faster raises capacity as much as adding workers.
Common confusion: more workers help only if there is memory and CPU to run them. The usual root cause of exhausted workers is slow code, slow queries or external API calls, not too few workers.
- POP3
An older protocol that downloads email to one device, usually deleting it from the server afterward.
Also called: POP3S
POP3 downloads messages from the mail server to a single app. It normally uses port 995 with TLS, or port 110 with STARTTLS. Many apps remove the messages from the server after downloading, unless set to leave a copy.
Why it matters: with POP3 on one computer, mail can vanish from the phone and webmail, and if that computer dies the mail goes with it. Moving to a new provider also misses anything only stored locally.
Example: in a mail app’s account settings, look for the account type. If it says POP and you use more than one device, set the account up again as IMAP.
Common confusion: POP3 and IMAP are only for receiving. Sending uses SMTP in both cases.
- Postmaster Tools
Google's free dashboard showing how Gmail sees mail from your domain: spam rate, authentication and sender requirements.
Also called: Google Postmaster Tools, Gmail Postmaster Tools
Google Postmaster Tools shows data about mail your domain sends to Gmail users, including the user-reported spam rate, SPF, DKIM and DMARC results, and whether you meet Gmail’s sender requirements. You verify the domain with a DNS TXT record.
Why it matters: if Gmail starts rejecting or filtering your mail, this is one of the few places Google tells you why from its side.
Example: add your domain at
postmaster.google.com, publish the TXT record it gives you, and check the spam rate after a newsletter goes out.Common confusion: it only shows data when you send enough mail to Gmail each day, so a small business with low volume may see empty charts. Microsoft offers its own separate programs for Outlook.com.
- Preload
A hint that tells the browser to fetch an important file early, before it would normally discover it.
Also called: rel=preload, link preload
A preload hint,
<link rel="preload" href="FILE" as="TYPE">, where FILE is the URL and TYPE isfont,image,styleorscript, starts a high-priority download early. It helps for resources discovered late, such as fonts referenced inside CSS or a hero image set as a CSS background.Why it matters: preloading the LCP image or key fonts can noticeably improve LCP. Preloading too much competes with critical resources and makes things slower.
Example:
<link rel="preload" href="/fonts/FONT.woff2" as="font" type="font/woff2" crossorigin>, where FONT.woff2 is the font file. Fonts needcrossorigineven on the same origin, or they download twice.Common confusion: the browser console warns when a preloaded file is not used within a few seconds. Preconnect, prefetch and preload do different jobs.
- PTR record
A DNS record that maps an IP address back to a hostname, known as reverse DNS, and is checked heavily by mail servers.
Also called: PTR, pointer record, reverse DNS, rDNS
A PTR record answers "what name belongs to this IP address?". It lives in a special reverse zone (
in-addr.arpafor IPv4,ip6.arpafor IPv6) controlled by whoever owns the IP block, usually your host or ISP, not your domain’s DNS provider.Why it matters: receiving mail servers check that a sending server’s IP has a PTR record, and many also check that the name resolves back to the same IP (forward-confirmed reverse DNS). A missing or generic PTR on a server that sends mail is a common reason mail is rejected or filtered.
Example:
dig -x SERVER.IP +short, where SERVER.IP is the server’s IP address. Then rundig RESULT.HOSTNAME A +shorton the answer and confirm it returns the same IP.Common confusion: you cannot add a PTR record in your domain’s DNS dashboard. Ask the provider that owns the IP address to set it.
Q
- Query Monitor
A free WordPress debugging plugin that shows slow database queries, PHP errors, hooks and outbound HTTP calls on each page.
Query Monitor is a developer tools panel for WordPress. Once active, it adds a menu to the admin bar for logged-in administrators showing database queries by plugin, PHP errors and notices, hooks, HTTP API calls, and the template in use.
Why it matters: it turns "the site is slow" into "this plugin runs 400 queries" or "this page waits 10 seconds on an outside API". It also shows PHP warnings without turning on
WP_DEBUGfor visitors.Example: open a slow page while logged in, then look at Queries by Component and HTTP API Calls in the Query Monitor panel.
Common confusion: visitors do not see the panel, but it still adds work to each request. Deactivate it when you have finished investigating.
- Query string
The part of a URL after the question mark, such as ?utm_source=newsletter, that passes extra values to the page.
Also called: query strings, URL parameters, query parameters, UTM parameters
A query string follows
?in a URL and holds name and value pairs joined by&, for example?s=shoes&page=2. Ads and email tools add tracking parameters such asutm_source,gclidorfbclid.Why it matters: many caches treat each query string as a different page, so ad traffic can bypass the cache and hit PHP on every visit. Bots crawling filter and search URLs with endless parameter combinations can also overload a site.
Example: compare
curl -sI https://YOURDOMAIN.COM/withcurl -sI "https://YOURDOMAIN.COM/?utm_source=test"and look at the cache headers. A HIT on the first and a MISS on the second means tracking parameters skip the cache.Common confusion: query strings are part of the URL, so they are visible to everyone and logged. Never put passwords or personal data in them.
R
- Rate limiting
Capping how many requests a client can make in a time window, to slow abuse and protect the server.
Also called: rate limit, 429 Too Many Requests
Rate limiting counts requests per IP, user or key and rejects or delays the excess, usually with
429 Too Many Requestsand sometimes aRetry-Afterheader. It is applied at CDNs, firewalls, web servers, APIs and login forms.Why it matters: it stops brute-force logins and scraping from overwhelming PHP. Set too tight, it locks out real users behind one shared IP (an office or school), blocks your own monitoring, or breaks payment and webhook callbacks.
Example: in Nginx,
limit_req_zone $binary_remote_addr zone=login:10m rate=5r/m;combined with alimit_req zone=loginline in a block forwp-login.phplimits login attempts to 5 per minute per IP.Common confusion: behind a CDN, rate limiting on the origin must use the real visitor IP from the forwarded header, or every visitor shares the CDN’s IP and gets limited together.
- Ray ID
The unique reference Cloudflare gives every request, shown on its error pages and in the cf-ray header.
Also called: Ray IDs, cf-ray
A Ray ID identifies one request that passed through Cloudflare. It appears at the bottom of Cloudflare error and block pages and in the
cf-rayresponse header.Why it matters: with the Ray ID you can find the exact request in the Cloudflare dashboard, including which security rule blocked it, so you can change that rule instead of guessing.
Example: a customer sends a screenshot of "Sorry, you have been blocked" with a Ray ID. In the dashboard, open Security, Events, filter by that Ray ID, and read the rule and action.
Common confusion: a Ray ID only exists for requests through the Cloudflare proxy. If a block page has no Ray ID, it came from somewhere else, such as your server’s firewall or a security plugin.
- Recovery mode
A WordPress feature that catches fatal errors, pauses the faulty plugin or theme for you, and emails a login link.
Also called: fatal error protection, There has been a critical error on this website
Since WordPress 5.2, recovery mode catches PHP fatal errors. Visitors see "There has been a critical error on this website", and the admin email address receives a message naming the plugin or theme that failed, with a special recovery link.
Why it matters: the recovery link logs you in with the faulty extension paused just for your session, so you can deactivate or update it from wp-admin. The email itself is a quick clue to the culprit.
Example: if the email never arrives (often because the site cannot send mail), find the error in the PHP error log or
debug.log, then deactivate the plugin withwp plugin deactivate PLUGIN-SLUG --skip-pluginsor by renaming its folder over SFTP, where PLUGIN-SLUG is the plugin’s folder name.Common confusion: recovery mode does not fix anything on its own. The extension is only paused for you; visitors still see the error until it is deactivated or fixed.
- Redemption period
The stage after a domain expires and is deleted by the registrar, when the owner can still restore it, usually for an extra fee.
Also called: redemption grace period, RGP
After a domain expires, the registrar first holds it in a grace period during which a normal renewal usually still works. If it is not renewed, the registrar deletes it and, for most generic TLDs, it enters a 30-day redemption period. The registrant can still get it back then, but registrars charge a restore fee on top of the renewal. After that comes a short pending delete stage, and then the name is released for anyone to register.
Why it matters: a site and its email stop working during this time, and the restore fee is often much higher than a renewal. Once the name is released, recovery may be impossible.
Example:
whois YOURDOMAIN.COMshowingredemptionPeriodin the status lines means the domain is in this stage. Contact your registrar today.Common confusion: grace periods, fees and timings differ by registrar and by country code TLD, so check your registrar’s terms for your extension. Turn on auto-renew and keep the registrar’s billing details current so you never get here.
- Redirect chain
A series of redirects one after another before the final page, or a loop that never ends.
Also called: redirect chains, redirect loop
A redirect chain happens when URL A redirects to B, which redirects to C, and so on. A redirect loop is a chain that circles back, and browsers stop with errors like
ERR_TOO_MANY_REDIRECTS.Why it matters: each hop adds a round trip and slows the page, and search engines may stop following after several hops. Loops take the site down entirely. A classic loop: the CDN connects to the origin over HTTP, the origin redirects to HTTPS, and the CDN asks over HTTP again.
Example:
curl -sIL https://YOURDOMAIN.COM/ | grep -iE "^(HTTP|location)"lists every hop, where YOURDOMAIN.COM is your domain. Aim for one hop at most from any old URL to its final URL.Common confusion: on WordPress, loops often come from
siteurlandhomedisagreeing with the server or proxy about HTTP versus HTTPS, or www versus non-www. Fix the source settings rather than adding another redirect.- Redis
A fast in-memory data store commonly used as WordPress's persistent object cache.
Also called: Redis server
Redis keeps key and value data in memory and answers in well under a millisecond on the same server. In WordPress it is connected through an
object-cache.phpdrop-in, usually installed by a plugin such as Redis Object Cache or by the host.Why it matters: if Redis is down, full, or the connection details change, the site can throw errors, slow down sharply or show stale data. When it runs out of memory without an eviction policy, writes start failing.
Example:
redis-cli pingshould answerPONG, andwp redis status(with the Redis Object Cache plugin) shows whether WordPress is connected.Common confusion: staging copies and clones must not use the same Redis database and key prefix as the live site, or they will read and overwrite each other’s cached options.
- Registrant
The person or organization a domain is registered to: its legal holder, which may differ from whoever has the account login.
Also called: domain registrant, registrant contact
The registrant is the person or organization named as the holder of a domain registration. The registrar’s account holder (whoever can log in and pay) is often the same, but not always.
Why it matters: registrars act on instructions from the account holder and the registrant. If a web designer registered the domain in their own name, getting it back can need their cooperation or a formal dispute, even though you paid for it.
Example: check the registrant details in your registrar account, and make sure the name and organization are your business and the email address is one you control.
Common confusion: many registries now hide registrant details from public WHOIS and RDAP lookups for privacy, so a lookup showing "REDACTED" does not tell you who the registrant is. Changing the registrant can also trigger a transfer lock at some registrars.
- Registrar
The company you rent your domain name from, which sends your contact and nameserver settings to the registry.
Also called: domain registrar
A registrar is an accredited company that sells domain registrations and manages them on your behalf with the registry for each TLD. You set the domain’s nameservers, contacts, locks and auto-renew at the registrar.
Why it matters: an expired domain, an unpaid renewal, a card that bounced or a registrar account nobody can log into will take a site and its email down regardless of how healthy the hosting is. Losing access to the registrar account is one of the hardest emergencies to fix, because ownership has to be proven.
Example:
whois YOURDOMAIN.COMor an RDAP lookup shows the registrar name, expiry date and status codes likeclientTransferProhibited, where YOURDOMAIN.COM is your domain.Common confusion: the registrar is not necessarily your DNS provider or your web host. Keep the registrar login in a password manager that more than one trusted person can reach.
- Render-blocking
CSS or JavaScript the browser must download and process before it can show anything on screen.
Also called: render-blocking resources, render blocking
Render-blocking resources are stylesheets in the head and synchronous scripts that stop the browser from painting until they load. Every one adds delay, especially on slow mobile connections.
Why it matters: they directly slow FCP and LCP. Themes and plugins that load large CSS and JavaScript files on every page are a common cause.
Example: add
deferto scripts that do not need to run before the page renders (<script src="APP.js" defer></script>, where APP.js is the script), load only the CSS a page needs, and consider inlining critical CSS.Common confusion: deferring or delaying scripts that other code depends on (like jQuery for an inline script) breaks menus, sliders and forms. Test thoroughly, including logged-out views.
- REST API
WordPress's JSON interface at /wp-json/ used by the block editor, apps, headless sites and many plugins.
Also called: WP REST API, wp-json
The REST API exposes WordPress data as JSON at URLs under
/wp-json/, for example/wp-json/wp/v2/posts. The block editor depends on it, as do many plugins, mobile apps and integrations.Why it matters: if security plugins, firewalls, broken permalinks or PHP notices corrupt REST responses, the block editor shows "Updating failed" or "The response is not a valid JSON response". Site Health reports REST API problems.
Example:
curl -s https://YOURDOMAIN.COM/wp-json/ | head -c 300should return JSON, not HTML, where YOURDOMAIN.COM is your domain. If permalinks are plain, the API is at/?rest_route=/instead.Common confusion: disabling the REST API entirely breaks the editor. Restrict specific endpoints instead, such as the user list, if you want less exposure.
- Reverse proxy
A server that receives visitors' requests and forwards them to one or more backend servers, then relays the answers.
Also called: reverse proxies, load balancer, load balancing
A reverse proxy sits in front of application servers. Nginx in front of Apache or PHP-FPM, Varnish in front of a site, and CDNs are all reverse proxies. They can cache, compress, terminate TLS, filter attacks and spread load.
Why it matters: the application behind a proxy sees the proxy’s IP and often a plain HTTP connection. Unless it trusts headers like
X-Forwarded-ForandX-Forwarded-Proto, WordPress may log the wrong visitor IP, block the proxy itself, or create HTTPS redirect loops.Example: a 502 or 504 is generated by a reverse proxy describing trouble with its backend. The proxy’s error log usually names the upstream and the reason, such as "connect() failed" or "upstream timed out".
A load balancer is a reverse proxy that spreads requests across several backend servers and drops unhealthy ones after failed health checks. With several backends, a problem can hit only some requests (one server running old code or missing an upload), so errors that come and go on refresh are a clue. Uploads, sessions and the object cache must be shared by every backend.
Common confusion: a forward proxy acts on behalf of users (like an office proxy); a reverse proxy acts on behalf of servers.
- robots.txt
A text file at the site root that tells well-behaved crawlers which paths they may and may not fetch.
Also called: robots file
robots.txt lives at
https://YOURDOMAIN.COM/robots.txt, where YOURDOMAIN.COM is your domain. It containsUser-agentgroups withDisallowandAllowrules, and can list sitemaps. WordPress serves a virtual one if no physical file exists.Why it matters: a stray
Disallow: /, often copied from staging, blocks search engines from the whole site. Blocking CSS and JavaScript stops Google from rendering pages properly.Example: a typical WordPress file:
User-agent: *,Disallow: /wp-admin/,Allow: /wp-admin/admin-ajax.phpandSitemap: https://YOURDOMAIN.COM/wp-sitemap.xml.Common confusion: robots.txt is not security; it is public and bad bots ignore it. It also cannot remove pages from the index. A blocked page can still be indexed from links, and Google cannot see a
noindexon a page it is not allowed to crawl.
S
- Safe Browsing
Google's list of dangerous sites, used by Chrome, Firefox and Safari to show red warnings before visitors arrive.
Also called: Google Safe Browsing, Deceptive site ahead
Google Safe Browsing flags sites hosting malware, phishing or unwanted software. Browsers that use it show full-page warnings such as "Deceptive site ahead" or "The site ahead contains malware", and Search may label results.
Why it matters: a warning stops almost all traffic and is often how owners learn they were hacked. It can also affect ads and email links that point to the domain.
Example: check the domain at Google’s Safe Browsing site status page, and see details under Security Issues in Search Console. After cleaning, request a review in Search Console; it explains what you fixed.
Common confusion: the warning is a symptom. Requesting a review before the cause is removed tends to fail and can slow later reviews.
- SAN
The list of domain names inside a certificate; browsers only accept the certificate for names on this list.
Also called: Subject Alternative Name
The Subject Alternative Name extension lists every hostname a certificate covers, such as
example.comandwww.example.com. Browsers check the visited name against this list; the old Common Name field is ignored for this purpose by modern browsers.Why it matters: a certificate issued only for
example.comfails onwww.example.comwith a name mismatch error. Adding a new subdomain or parked domain later means reissuing the certificate with the new name.Example:
echo | openssl s_client -connect YOURDOMAIN.COM:443 -servername YOURDOMAIN.COM 2>/dev/null | openssl x509 -noout -ext subjectAltNameprints the list, where YOURDOMAIN.COM is your domain.Common confusion: a wildcard entry like
*.example.comcoversshop.example.combut notexample.comitself and nota.b.example.com.- Screen reader
Software that reads a screen aloud or to a braille display, used by blind and low-vision people to browse websites.
Also called: screen readers, NVDA, JAWS, VoiceOver, TalkBack
A screen reader turns what is on screen into speech or braille and lets the user move by headings, links, landmarks and form fields. Common ones are NVDA and JAWS on Windows, VoiceOver on Apple devices, and TalkBack on Android.
Why it matters: screen readers depend on the page’s HTML. Images without alt text, buttons with no name, fields with no labels and headings used for styling all make a page confusing or unusable.
Example: on a Mac, press Command+F5 to turn VoiceOver on, then use the Tab key and VoiceOver commands to move through your contact form. Listen for each field’s name and any error message.
Common confusion: screen reader users do not only listen to the page from top to bottom. Many jump between headings and links, so headings and link text need to make sense on their own.
- Search-replace
Replacing text across the WordPress database safely, typically to change a domain, with serialized data handled correctly.
Also called: wp search-replace, search and replace
A search-replace updates every occurrence of a string in the database, most often an old URL during a migration or HTTPS switch. WP-CLI’s
wp search-replacehandles serialized data; plugins such as Better Search Replace do too.Why it matters: a missed or bad replace leaves links and images pointing at a staging domain, causes mixed content, or breaks serialized settings. Replacing too broadly (for example a short word) corrupts unrelated content.
Example: back up, then preview with
wp search-replace 'https://OLD.DOMAIN' 'https://NEW.DOMAIN' --all-tables --precise --dry-run, where OLD.DOMAIN and NEW.DOMAIN are the domains. Remove--dry-runto run it. Add--skip-columns=guidto leave post GUIDs alone.Common confusion: also search for the escaped JSON form (
https:\/\/OLD.DOMAIN) and protocol-relative//OLD.DOMAIN, and flush caches afterward.- Search Console
Google's free tool showing how Google crawls, indexes and ranks your site, and alerting you to problems.
Also called: Google Search Console, GSC
Google Search Console reports indexing status, search queries, Core Web Vitals, crawl stats, security issues and manual actions for a verified property. URL Inspection shows how Google sees one page.
Why it matters: it is where you find out about hacks (Security Issues), penalties (Manual actions) and indexing blockers, and where you request reviews and reindexing after fixing them.
Example: verify the domain property with a DNS TXT record so it covers every subdomain and protocol. Domain properties survive site rebuilds better than a verification file or meta tag.
Common confusion: data is delayed by a day or more, and the Performance report samples and anonymizes some queries. Bing Webmaster Tools is the separate equivalent for Bing.
- Self-signed certificate
A certificate signed by its own key rather than a trusted CA, so browsers do not trust it.
Also called: self-signed
A self-signed certificate encrypts traffic but proves nothing about identity to the public, because no trusted authority vouched for it. Browsers show warnings such as
NET::ERR_CERT_AUTHORITY_INVALID.Why it matters: servers often fall back to a self-signed or default certificate when the real one is missing, has not been issued yet or the hostname does not match a configured site. Seeing one in production usually means the site is not set up for that hostname on the server that answered.
Example:
echo | openssl s_client -connect YOURDOMAIN.COM:443 -servername YOURDOMAIN.COM 2>/dev/null | openssl x509 -noout -subject -issuer; if subject and issuer are identical, it is self-signed. YOURDOMAIN.COM is your domain.Common confusion: self-signed certificates are fine for private testing and some internal services. Behind some CDNs, an origin with a self-signed certificate works only in a non-strict mode, which removes protection between CDN and origin.
- SEO spam
Hidden spam links or pages injected into a hacked site to rank the attacker's products in search results.
Also called: Japanese keyword hack, pharma hack, spam injection
SEO spam covers hacks that add spam pages, links or keywords to a site, such as the "Japanese keyword hack" or "pharma hack". Spam often shows only to search engine crawlers or visitors arriving from search results, so the owner sees nothing wrong.
Why it matters: search results show spam titles under your domain, Search Console may report a security issue, and rankings fall. Thousands of injected URLs can be indexed before anyone notices.
Example: search
site:YOURDOMAIN.COMand look for foreign-language or pharmacy titles, where YOURDOMAIN.COM is your domain. Check Search Console’s Security Issues and Pages reports, and use URL Inspection to see the page as Google fetched it.Common confusion: after cleanup, return 404 or 410 for the spam URLs, then request a review if a security issue was flagged. Do not redirect spam URLs to your home page.
- Serialized data
PHP's text format for storing arrays and objects, which records string lengths and breaks if text is changed naively.
Also called: serialization, PHP serialization
Serialized data is how PHP turns an array or object into a string for storage, for example
a:1:{s:3:"url";s:19:"http://example.com/";}. Thes:19says the string is exactly 19 characters long.Why it matters: WordPress options, widget settings, theme mods and page builder data are often serialized. A plain find-and-replace on a database dump that changes
http://tohttps://changes the length without updating the count, and PHP then refuses to unserialize it, so settings and layouts silently reset.Example: use
wp search-replace, which unserializes, replaces and reserializes correctly. Do not usesedon an SQL dump for domain changes.Common confusion: JSON stored in the database (common in newer plugins) has no length counts, but may escape slashes, so
https:\/\/example.commay not match a plain search string.- SERVFAIL
A DNS response meaning the resolver could not get a trustworthy answer, often from DNSSEC errors or dead nameservers.
Also called: server failure
SERVFAIL means the resolver tried and failed. It does not say the name is missing; it says something went wrong getting the answer.
Common causes: broken DNSSEC (a DS record that does not match the zone’s keys, or expired signatures), authoritative nameservers that are down or refuse queries, or a delegation pointing at servers that do not host the zone (a "lame delegation").
Example:
dig YOURDOMAIN.COM Ashowsstatus: SERVFAIL; run it again with+cd(checking disabled). If the+cdquery works, DNSSEC validation is the problem. YOURDOMAIN.COM is your domain.Common confusion: because only validating resolvers fail, a DNSSEC problem can look random: the site works on one network and not another.
- Site Health
The WordPress screen under Tools that checks the setup for problems and lists server and configuration details.
Also called: WordPress Site Health, Site Health screen
Site Health (Tools, Site Health) arrived in WordPress 5.2. The Status tab runs checks such as PHP version, HTTPS, scheduled events, loopback and REST API requests, and background updates. The Info tab lists the server, PHP limits, database, constants, plugins and media handling.
Why it matters: it shows the settings WordPress actually runs with, which may differ from what the hosting panel claims or what WP-CLI sees.
Example: Info, then Copy site info to clipboard, gives you a text report you can paste into a support ticket. Remove anything private before sending.
Common confusion: a "recommended improvement" is not an emergency. Focus on critical issues and anything matching your symptom, such as a failed loopback request when scheduled posts are missed.
- Sitemap
A file listing the URLs you want search engines to find, usually XML, submitted in Search Console.
Also called: XML sitemap, sitemap.xml, wp-sitemap.xml
An XML sitemap lists canonical URLs, optionally with last-modified dates. WordPress core generates one at
/wp-sitemap.xml; SEO plugins often replace it with their own, such as/sitemap_index.xml.Why it matters: sitemaps help discovery, especially for new or large sites. A sitemap full of redirected, noindexed or 404 URLs sends mixed signals, and a broken one (PHP notices before the XML, or a cached HTML page) cannot be read at all.
Example: open the sitemap URL in a browser or with
curl -s https://YOURDOMAIN.COM/wp-sitemap.xml | head, where YOURDOMAIN.COM is your domain. The first characters must be the XML declaration or opening tag, with nothing before it.Common confusion: listing a URL in a sitemap does not force indexing, and leaving one out does not hide it.
- Skimmer
Malicious code injected into a store's checkout that copies the card details customers type and sends them to attackers.
Also called: card skimmer, credit card skimmer, web skimmer, skimmers, Magecart
A web skimmer is JavaScript or PHP planted on a compromised store. It captures card numbers, expiry dates and security codes as customers type them, or shows a fake payment form, and sends the data to the attacker. Magecart is a common umbrella name for these campaigns.
Why it matters: customers' cards get used fraudulently, and the gateway or card processor may trace the fraud back to your store. Skimmers often hide in the database (options, widgets, code snippet plugins) or fake plugins, so file scans miss them.
Example: compare the checkout page’s scripts with your developer tools Network tab: an unfamiliar domain receiving data when you type in the card fields is a red flag. Searching the options table for
<scriptcan find injected code.Common confusion: hosted payment fields (in an iframe from the gateway) reduce the risk but do not remove it; a skimmer can still overlay a fake form on top. Who you must notify after a skimmer depends on your gateway contract and local law, so check with your payment provider, your insurer and a lawyer licensed where you operate.
- Skip link
A link at the very top of a page that lets keyboard users jump past the menu straight to the main content.
Also called: skip links, skip to content link, skip navigation link
A skip link is usually the first focusable element on the page, labeled something like "Skip to content", and points at the main content area. It is often hidden until it receives keyboard focus.
Why it matters: without one, a keyboard user has to tab through every menu item on every page. It is the usual way to meet WCAG 2.4.1 Bypass Blocks (level A).
Example: load your home page and press Tab once. A "Skip to content" link should appear; pressing Enter should move focus to the main content, not just scroll the page.
Common confusion: a skip link that points at an ID that no longer exists (after a theme or builder change) does nothing. Check the target
idis still on the page.- Slow query log
A database log that records queries taking longer than a set time, used to find what is slowing a site down.
Also called: slow log, long_query_time
The slow query log records statements slower than
long_query_timeseconds, optionally including those that use no index. Each entry shows the query, its time, rows examined and rows sent.Why it matters: when uncached pages or wp-admin crawl, a few repeated slow queries are often the cause, such as a search on a huge
wp_postmetatable, an unindexed plugin table or a bloatedwp_options. Fixing them can help more than any cache.Example: on servers you control, enable it with
SET GLOBAL slow_query_log = 1;andSET GLOBAL long_query_time = 1;, then summarize withmysqldumpslow. On shared hosting ask the host, or use the Query Monitor plugin to see slow queries per page.Common confusion: a query that is slow once under load is not always a bad query. Look for queries that are slow repeatedly and examine many rows to return few.
- SMTP
The protocol mail servers use to send and relay email; the server software doing it is called an MTA.
Also called: Simple Mail Transfer Protocol, MTA, mail transfer agent
SMTP (Simple Mail Transfer Protocol) moves email from a sender to a receiving server. An MTA (mail transfer agent) such as Postfix or Exim speaks SMTP to deliver and relay messages. Clients and websites submit mail on port 587 (or 465 with implicit TLS); servers talk to each other on port 25.
Why it matters: sending WordPress email through an authenticated SMTP service instead of the server’s local mailer is the usual fix for forms and receipts that never arrive. SMTP response codes explain failures:
4xxmeans try again later,5xxmeans rejected.Example:
openssl s_client -starttls smtp -connect SMTP.HOST:587tests a connection to SMTP.HOST, the provider’s SMTP server. Many hosts block outbound port 25, so use 587 with authentication.Common confusion: SMTP sends mail; IMAP and POP3 are for reading a mailbox. "SMTP plugin" in WordPress means a plugin that routes
wp_mail()through an external SMTP or API service.- SNI
The part of the TLS handshake where the browser says which hostname it wants, so one IP can serve many certificates.
Also called: Server Name Indication
SNI (Server Name Indication) lets the client send the hostname at the start of the TLS handshake. The server uses it to pick the right certificate when many sites share one IP address, which is how almost all shared hosting and CDNs work.
Why it matters: if a request arrives without SNI, or with a hostname the server does not know, the server presents its default certificate, which shows as a name mismatch. Old tools and some scripts forget to send it.
Example:
openssl s_client -connect SERVER.IP:443 -servername YOURDOMAIN.COMtests a specific server, where SERVER.IP is the server’s IP and YOURDOMAIN.COM is your domain. Leaving off-servernameshows what clients without SNI receive.Common confusion: SNI is normally sent unencrypted, so network observers can see which site you are visiting even with HTTPS. Encrypted Client Hello (ECH) is the newer extension that hides it.
- SOA record
The record at the top of every DNS zone holding its primary server, admin contact, serial number and timing values.
Also called: SOA, start of authority
The SOA (start of authority) record contains the primary nameserver, a contact mailbox written with a dot instead of @, a serial number, and refresh, retry and expire timers for secondary servers. Its last field sets how long resolvers cache "this name does not exist" answers (negative caching).
Why it matters: if the serial is not increased after an edit on a traditionally managed zone, secondary nameservers keep serving the old data, so some lookups get new answers and some get old ones. The negative caching value also explains why a record you just created can stay "not found" for a while if someone looked it up before it existed.
Example:
dig YOURDOMAIN.COM SOA +short, where YOURDOMAIN.COM is your domain. Compare the serial across each nameserver withdig @NAMESERVER YOURDOMAIN.COM SOA +short, where NAMESERVER is each listed nameserver.Common confusion: the SOA TTL and the minimum field are not the default TTL for your other records. Most managed DNS dashboards handle the SOA for you.
- Soft 404
A page that says "not found" or has almost no content but returns 200 OK, which search engines treat as an error.
Also called: soft 404 error
A soft 404 is reported by Google when a URL returns a success code but looks like an error or empty page, such as a "nothing found" message, an empty category, or a missing product page that returns 200.
Why it matters: those pages are dropped from the index anyway, and real pages that look thin can be misclassified. Redirecting many missing URLs to the home page is also treated as a soft 404.
Example:
curl -sI https://YOURDOMAIN.COM/MISSING-PAGE/should return404or410, not200, where MISSING-PAGE is a URL that should not exist. Search Console’s Pages report lists URLs flagged as soft 404.Common confusion: the fix is to return a real 404 or 410, or a 301 to a closely matching page, not to add filler text.
- SPF
A DNS TXT record listing which servers may send email using your domain in the envelope sender.
Also called: Sender Policy Framework, SPF record
SPF (Sender Policy Framework) is a TXT record such as
v=spf1 include:_spf.PROVIDER.COM ip4:203.0.113.10 -all, where PROVIDER.COM is your email provider’s domain. Receiving servers check whether the connecting server’s IP is allowed to send for the domain in the envelope sender (Return-Path).Why it matters: a missing or wrong SPF record sends mail to spam or gets it rejected, especially for website mail sent from a server that is not listed. Adding a new service (a newsletter tool or helpdesk) without updating SPF breaks its mail.
Example:
dig YOURDOMAIN.COM TXT +short | grep spf1, where YOURDOMAIN.COM is your domain. There must be exactly one SPF record per name. SPF also has a limit of 10 DNS lookups across allinclude,a,mxand similar mechanisms; going over causes a permanent error.Common confusion: SPF checks the envelope sender, not the visible From address, so SPF alone does not stop spoofing of the From line. DMARC adds that link.
- Spoofing
Sending email that pretends to come from someone else's address or domain.
Also called: email spoofing, spoofed email
Spoofing forges the From address (and often the envelope sender) so a message appears to come from you or your company. SMTP itself does not verify the From line; SPF, DKIM and DMARC exist to let receivers detect forgeries.
Why it matters: spoofed invoices and payment requests are a common fraud. Without DMARC at
quarantineorreject, receivers have no instruction to block mail forged in your domain’s name.Example: in the message’s
Authentication-Resultsheader, a spoofed message typically showsspf=failordkim=noneanddmarc=failfor your domain. Lookalike domains (an extra letter, a different TLD) are not spoofing your domain and DMARC cannot stop them.Common confusion: receiving spoofed mail "from yourself" does not mean your mailbox was hacked. Check the headers before resetting passwords in a panic, though resetting is still harmless.
- SRV record
A DNS record that tells clients which host and port to use for a named service, such as calendar, chat or VoIP.
Also called: SRV, service record
An SRV record publishes the location of a service with a priority, weight, port and target host. The name follows the pattern
_SERVICE._PROTOCOL.example.com, for example_sip._tls.example.com. SRV 100 1 443 sipdir.online.lync.com..Why it matters: Microsoft 365, some email autodiscovery setups, SIP phones and game servers rely on SRV records. They are often forgotten during a nameserver move, and the service quietly stops connecting while the website looks fine.
Example check:
dig _SERVICE._tcp.YOURDOMAIN.COM SRV +short, where SERVICE is the service name from the provider’s docs and YOURDOMAIN.COM is your domain.Common confusion: web browsers do not use SRV records for normal websites, so an SRV record cannot change which server serves your site.
- SSH
An encrypted way to log into a server's command line to run commands, edit files and use tools like WP-CLI.
Also called: Secure Shell, SFTP, SSH File Transfer Protocol
SSH (Secure Shell) gives you a terminal on the server over an encrypted connection. You log in with a password or, better, a key pair. It is the fastest way to read logs, run WP-CLI and fix a site that will not load.
Why it matters: when wp-admin is unreachable, SSH lets you disable plugins, check disk space and roll back changes. Many shared hosts disable SSH by default or restrict it to certain IPs or keys.
Example:
ssh USERNAME@SERVER.HOSTlogs in, where USERNAME and SERVER.HOST come from your hosting panel. Add-p PORTif the host uses a nonstandard port.SFTP transfers files over the same SSH connection and login, in clients such as FileZilla, Cyberduck or WinSCP (host from your panel, usually port 22). It is how you rename a broken plugin folder, for example
wp-content/plugins/PLUGIN-NAMEtoPLUGIN-NAME.offwhere PLUGIN-NAME is its folder, or remove a stuck.maintenancefile when the site is down. Avoid plain FTP, which sends passwords unencrypted, and note that SFTP is not FTPS.Common confusion: SSH is not FTP. SFTP runs over SSH and uses the same login. "Permission denied (publickey)" means the server only accepts keys and yours is not authorized.
- Staging site
A private copy of a site used to test updates and changes before they touch the live site.
Also called: staging environment, staging copy
A staging site mirrors the live site’s code and data on a separate URL. You test updates, redesigns and fixes there, then push changes live or repeat them.
Why it matters: it is how you avoid breaking production. But staging copies cause their own emergencies: they get indexed by search engines, send real emails to customers, process real payments or webhooks, or overwrite live orders when pushed back.
Example: block indexing (password protection beats a noindex setting), disable outgoing mail, use test payment keys, give it a separate cache and object cache key, and never push the database over a live store that took orders since the copy was made.
Common confusion: pushing "files only" usually still leaves database changes behind, and pushing the database overwrites everything that happened on live since the clone.
- Subdomain
A name under your domain, such as shop.example.com or www.example.com, that can point anywhere independently.
Also called: subdomains
A subdomain is any name below your domain:
www,shop,mail,staging. Each can have its own records and point at a different server or service.Why it matters: subdomains often get forgotten in migrations, so a nameserver move can quietly break the shop, the help desk or webmail while the main site works. Forgotten subdomains pointing at deleted cloud services can also be taken over by someone else ("subdomain takeover").
Example:
dig SHOP.YOURDOMAIN.COM +short, where SHOP.YOURDOMAIN.COM is the subdomain. Certificate Transparency logs (search your domain at crt.sh) are a handy way to discover subdomains you have used.Common confusion: a subdomain is a DNS name, not a folder.
example.com/shopandshop.example.comare different things with different setups.
T
- Table prefix
The text at the start of every WordPress table name, set in wp-config.php, wp_ by default.
Also called: $table_prefix, database prefix, wp_ prefix
The table prefix is set by
$table_prefixinwp-config.php. Withwp_, tables are namedwp_posts,wp_optionsand so on. One database can hold several installs with different prefixes.Why it matters: if the prefix in
wp-config.phpdoes not match the tables in the database, WordPress thinks it is not installed and shows the installation screen. That often happens after restoring a backup made by a tool that changed the prefix.Example:
wp db tableslists the tables WordPress can see, andwp config get table_prefixshows the configured prefix. They must agree.Common confusion: changing the prefix is not just renaming tables. The prefix also appears inside data: the
PREFIX_user_rolesoption and thePREFIX_capabilitiesandPREFIX_user_leveluser meta keys must be renamed too, where PREFIX is the table prefix, or every user loses their role. A custom prefix adds little real security.- TBT
A lab metric adding up how long the main thread was blocked by long tasks during loading, a stand-in for responsiveness.
Also called: Total Blocking Time
Total Blocking Time adds up the portion of each long task (over 50 milliseconds) beyond that 50 milliseconds, between First Contentful Paint and when the page becomes reliably interactive. It is measured in lab tools like Lighthouse.
Why it matters: high TBT usually means too much JavaScript running at load: page builders, sliders, analytics, ads and chat widgets. It correlates with poor INP in the field.
Example: Lighthouse lists the scripts with the most main-thread time under "Reduce JavaScript execution time" and "Minimize main-thread work". Remove unused scripts, load them only on pages that need them, or delay third-party scripts.
Common confusion: TBT is not a Core Web Vital and has no field equivalent. Use it to diagnose, then confirm improvements with field INP.
- TDRP
ICANN's process for registrars to dispute a domain transfer that broke the transfer rules, such as an unauthorized transfer.
Also called: Transfer Dispute Resolution Policy
The TDRP (Transfer Dispute Resolution Policy) is the ICANN procedure for disputes about transfers of generic TLD domains between registrars. Under the current policy, a registrar files the complaint with an approved dispute provider, and it must be filed within 12 months of the alleged violation.
Why it matters: if your domain was transferred to another registrar without your authorization, this is one of the formal routes to get it back. You start by asking your former registrar to act.
Example: after a hijack, give your registrar the dates, the account evidence and proof you are the registrant, and ask whether they will pursue a transfer dispute.
Common confusion: the TDRP is about transfer rules being broken, not about trademarks; that is the UDRP. Registrants cannot file a TDRP complaint themselves under the current policy, and ICANN has adopted changes to its transfer rules that registrars will apply from a future date, so check the current policy on ICANN’s site. This is not legal advice.
- theme.json
The configuration file that sets a WordPress theme's colors, fonts, spacing, layout and which editor controls appear.
Also called: theme json
theme.json declares settings (palettes, font sizes, spacing scale, layout widths) and styles (defaults for elements and blocks). WordPress turns it into CSS custom properties and editor controls.
Why it matters: user changes made in the Site Editor’s Styles panel are saved in the database and override the file, so editing
theme.jsonmay appear to have no effect. Invalid JSON makes WordPress ignore the file entirely.Example: validate it with
php -r 'json_decode(file_get_contents("theme.json")); echo json_last_error_msg();'run in the theme folder; it should print "No error".Common confusion: classic themes can use theme.json too, for editor settings, without becoming block themes.
- TLS
The encryption protocol behind HTTPS, still widely called SSL, that keeps traffic private and proves which site you reached.
Also called: SSL, Transport Layer Security, HTTPS
TLS (Transport Layer Security) encrypts the connection between a browser and a server and, using a certificate, proves the server is allowed to use the domain name. HTTPS is simply HTTP sent inside TLS. SSL is the name of its retired predecessor, but "SSL certificate" stuck as everyday language.
Why it matters: browsers treat TLS failures as hard errors. An expired certificate, a missing intermediate, a name mismatch or an outdated protocol version all stop visitors at a full-page warning.
Example:
openssl s_client -connect YOURDOMAIN.COM:443 -servername YOURDOMAIN.COMshows the negotiated protocol, the certificate chain and any verification error, where YOURDOMAIN.COM is your domain.Common confusion: TLS 1.2 and 1.3 are current; SSL 2.0, SSL 3.0, TLS 1.0 and TLS 1.1 are deprecated and refused by modern browsers. "SSL" in a control panel almost always means TLS.
- TLS certificate
A signed digital file that proves a server may use a domain name and carries the key used to start encryption.
Also called: SSL certificate, SSL cert, X.509 certificate
A TLS certificate (still usually called an SSL certificate) binds one or more domain names to a public key and is signed by a certificate authority that browsers trust. It has a start and end date, and lists every name it covers in its SAN field.
Why it matters: an expired certificate, one that does not list the exact name being visited (for example www missing), or one signed by an untrusted issuer produces errors like
NET::ERR_CERT_DATE_INVALIDorNET::ERR_CERT_COMMON_NAME_INVALID.Example:
echo | openssl s_client -connect YOURDOMAIN.COM:443 -servername YOURDOMAIN.COM 2>/dev/null | openssl x509 -noout -dates -ext subjectAltNameprints the validity dates and the names covered, where YOURDOMAIN.COM is your domain.Common confusion: certificate lifetimes are getting shorter across the industry. Under CA/Browser Forum rules the maximum dropped to 200 days in March 2026 and is scheduled to fall further, reaching 47 days in 2029. Automated renewal is no longer optional.
- TLS handshake
The opening exchange where browser and server agree on TLS settings, check the certificate and set up encryption keys.
Also called: SSL handshake, cipher suite, cipher suites
The TLS handshake runs before any HTTP is sent. The client offers protocol versions and cipher suites and sends SNI; the server picks settings and sends its certificate chain; both derive session keys. TLS 1.3 completes this in one round trip, faster than TLS 1.2.
Why it matters: errors such as
ERR_SSL_PROTOCOL_ERROR,ERR_SSL_VERSION_OR_CIPHER_MISMATCHor "handshake failure" mean the two sides could not agree, the certificate was rejected, or something in the middle (a firewall, a misconfigured CDN or a server listening with plain HTTP on port 443) broke the exchange.Example:
openssl s_client -connect YOURDOMAIN.COM:443 -servername YOURDOMAIN.COM -tls1_2forces TLS 1.2, and-tls1_3forces TLS 1.3, where YOURDOMAIN.COM is your domain. Compare which one succeeds.A cipher suite is the named set of algorithms the two sides agree on, for example
TLS_AES_128_GCM_SHA256in TLS 1.3. If client and server share no suite, the handshake fails with a cipher mismatch.nmap --script ssl-enum-ciphers -p 443 YOURDOMAIN.COMlists what a server offers. On managed hosting and CDNs, pick the provider’s modern or intermediate profile rather than hand-tuning suites.Common confusion: a handshake failure is not the same as an expired certificate, though both stop the page loading. Read the exact browser error code.
- Transfer lock
A status that stops a domain moving to another registrar until the owner removes it, plus time-based locks after some changes.
Also called: registrar lock, domain lock, clientTransferProhibited, 60-day lock
A transfer lock prevents a domain from being transferred away. The registrar lock you control appears as
clientTransferProhibitedin WHOIS or RDAP; a registry-level lock appears asserverTransferProhibited. There are also time-based locks: under the current ICANN rules, a registrar may refuse a transfer within 60 days of registration or a previous transfer, and a change of registrant can trigger a 60-day lock unless you opted out.Why it matters: the lock is a key defense against hijacking. Keep it on, and remove it only when you are moving the domain yourself.
Example:
whois YOURDOMAIN.COM | grep -i statusshows the current statuses, where YOURDOMAIN.COM is your domain.Common confusion: these are the current rules, but ICANN has adopted changes, including shorter locks, that registrars will apply from a future date, so check your registrar’s current terms. Country code TLDs follow their own rules. A lock does not stop someone with your registrar login from changing nameservers; two-factor authentication does.
- Transients
Temporary cached values WordPress and plugins store with an expiry time, in wp_options or in an object cache.
Also called: Transients API, set_transient
Transients are a simple cache API:
set_transient( 'NAME', VALUE, SECONDS )stores a value for up to SECONDS, where NAME is a key. Without a persistent object cache, they are rows inwp_optionsnamed_transient_NAMEand_transient_timeout_NAME.Why it matters: buggy plugins can create huge numbers of transients, bloating
wp_optionsand slowing every query against it. Stale transients can also make a fix look like it did nothing until the cached value expires.Example:
wp transient delete --expiredremoves expired ones, andwp transient delete --allclears all transients stored in the database. Plugins rebuild what they need.Common confusion: a transient can disappear before its expiry at any time, especially with an object cache, so code must not rely on it as permanent storage.
- TTFB
How long the browser waits from starting a request until the first byte of the response arrives.
Also called: time to first byte
TTFB (time to first byte) covers redirects, DNS, the connection, TLS setup and the server’s time to start responding. For a dynamic WordPress page without a page cache, most of it is PHP and database work.
Why it matters: a slow TTFB delays everything else, including LCP. Web.dev suggests aiming for roughly 0.8 seconds or less as a rough guide, but treats TTFB as a diagnostic rather than a Core Web Vital.
Example:
curl -o /dev/null -s -w "%{time_starttransfer}\n" https://YOURDOMAIN.COM/prints the TTFB in seconds, where YOURDOMAIN.COM is your domain. Run it a few times and compare a cached page with a logged-in or uncached one.Common confusion: a fast TTFB on the home page may just mean it is cached. Test pages that bypass cache (cart, search, admin) to see the real backend speed.
- TTL
How long, in seconds, resolvers and browsers may cache a DNS answer before asking again.
Also called: time to live
TTL (time to live) is a number of seconds attached to every DNS record. A record with TTL
3600may be cached for up to an hour by any resolver that looked it up. Lower TTLs mean changes are seen sooner; higher TTLs mean fewer lookups and more resilience if your DNS provider has an outage.Why it matters in an emergency: TTL is the real reason "propagation" takes time. If an A record had a TTL of 86400 (one day), some visitors can keep reaching the old server for up to a day after you change it, and nothing you do afterward speeds that up.
Example:
dig YOURDOMAIN.COM Ashows the remaining TTL in the second column of the answer, where YOURDOMAIN.COM is your domain. Before a planned migration, lower the TTL to 300 at least one old TTL period in advance.Common confusion: lowering the TTL only helps for caches that fetch the record after you lowered it. Some resolvers also enforce their own minimum or maximum, so treat TTL as an upper bound you request, not a guarantee.
- Two-factor authentication
A login that needs a second proof, such as a code from an app or a security key, as well as the password.
Also called: 2FA, MFA, multi-factor authentication
Two-factor authentication (2FA, a form of multi-factor authentication) adds something you have, such as an authenticator app code, a passkey or a hardware security key, on top of something you know.
Why it matters: it stops most stolen or guessed passwords from being enough. Turning it on for registrar, hosting, DNS, email and WordPress admin accounts is among the most effective protections there is. Losing the second factor without backup codes can lock you out during an emergency.
Example: store backup codes somewhere safe and separate, and enroll more than one factor (for example two security keys, or an app plus codes). For WordPress, a 2FA plugin protects
wp-login.php; application passwords bypass it by design, so review them.Common confusion: SMS codes are better than nothing but can be intercepted or lost to SIM swapping. App codes, passkeys and security keys are stronger.
- TXT record
A DNS record that holds free text, used for SPF, DKIM, DMARC and proving domain ownership to services.
Also called: TXT, text record
A TXT record stores text strings on a name. It started as a general notes field and now carries email policy (SPF, DKIM keys, DMARC) and verification tokens for Google, Microsoft and certificate authorities.
When something breaks: a missing or malformed TXT record can send mail to spam, fail a domain verification, or stall a DNS-01 certificate challenge. Two separate SPF TXT records on the same name is a classic mistake that makes SPF fail.
Example:
dig YOURDOMAIN.COM TXT +shortlists TXT records on the apex, anddig _dmarc.YOURDOMAIN.COM TXT +shortshows the DMARC policy, where YOURDOMAIN.COM is your domain.Common confusion: one TXT string is limited to 255 characters, so long values such as DKIM keys are split into several quoted strings that are joined together. Many dashboards do this for you; pasting the quotes in yourself can break the record.
U
- UDRP
ICANN's process for trademark owners to win back a domain someone registered and used in bad faith.
Also called: Uniform Domain-Name Dispute-Resolution Policy
The UDRP (Uniform Domain-Name Dispute-Resolution Policy) lets a trademark holder file a complaint against a domain with an approved provider such as WIPO. The complainant must show the domain is identical or confusingly similar to their mark, the holder has no rights or legitimate interests in it, and it was registered and is being used in bad faith.
Why it matters: it is the standard route against cybersquatting, and is usually faster and cheaper than court. The only outcomes are transfer or cancellation of the domain, not damages.
Example: a business with a registered trademark finds a look-alike domain hosting a phishing copy of its site, and files a UDRP complaint after gathering screenshots and trademark records.
Common confusion: the UDRP is for trademark abuse, not general ownership arguments. A dispute with a former designer who registered your domain may fit it or may need a different route. This is not legal advice; ask a lawyer licensed where you operate.
- upload_max_filesize
PHP limits on the size of one uploaded file (upload_max_filesize) and of a whole form submission (post_max_size).
Also called: post_max_size, maximum upload file size
upload_max_filesize sets the largest single file PHP accepts. post_max_size sets the largest whole request, including every file and field, so it must be larger. PHP’s own defaults are 2M and 8M; hosts usually set higher values.
Why it matters: uploads over the limit fail with
The uploaded file exceeds the upload_max_filesize directive in php.ini., or with "The link you followed has expired" whenpost_max_sizeis exceeded and WordPress receives an empty request. A413 Request Entity Too Largecomes from the web server’s own limit, which is separate.Example: the Media, Add New screen shows "Maximum upload file size". Raise the values in the hosting panel’s PHP settings or
.user.ini, keepingpost_max_sizeaboveupload_max_filesize.Common confusion: these cannot be changed with
ini_set()inwp-config.php, because PHP has already read the request by then.memory_limitis a different setting.- User agent
The text a browser or bot sends to identify itself, such as its browser name, version and operating system.
Also called: user-agent string, UA string
The User-Agent request header identifies the client: a browser, a search engine crawler, a monitoring service or a script. Servers and plugins use it for statistics, bot rules and sometimes to serve different content.
Why it matters: access logs record it, which helps you separate real visitors from crawlers during a traffic spike. Firewall rules often block or rate limit by user agent.
Example:
awk -F'"' '{print $6}' ACCESS.LOG | sort | uniq -c | sort -rn | headlists the most common user agents in a combined-format access log, where ACCESS.LOG is the log file path.Common confusion: the user agent is trivially faked. Bad bots claim to be Googlebot all the time; verify real Googlebot with a reverse DNS lookup on the IP, not by the user agent string.
- UTF-8
The standard text encoding of the web, able to store any character. WordPress databases use its full form, utf8mb4.
Also called: UTF8, byte order mark
UTF-8 encodes every Unicode character in one to four bytes, and is the encoding nearly all web pages use. In MySQL and MariaDB, full UTF-8 is called
utf8mb4; the olderutf8cannot store four-byte characters such as emoji.Why it matters: text saved in one encoding and read as another turns curly quotes into
’. A related trap is the invisible byte order mark (BOM) some Windows editors add at the start of a file: in a PHP file it is sent before WordPress can set headers.Example:
Cannot modify header information - headers already sent by (output started at /PATH/wp-config.php:1)right after editing a file often means a BOM or a stray space before<?php. Save the file as "UTF-8 without BOM".Common confusion: the character set and the collation are separate settings; see the character set entry. Converting a table’s declared encoding does not repair text that is already garbled.
V
- Varnish
A caching reverse proxy some hosts put in front of WordPress to serve stored copies of pages very quickly.
Also called: Varnish Cache
Varnish is an HTTP cache that sits in front of the web server and stores full pages in memory. Repeat requests are answered from Varnish without running PHP. It usually sits behind something else that handles HTTPS.
Why it matters: it makes cached pages fast, but changes you make in WordPress do not appear until Varnish is purged, and dynamic pages such as cart and checkout must be excluded or carts break.
Example:
curl -sI https://YOURDOMAIN.COM/showing headers such asx-varnish,via: 1.1 varnishoragesuggests Varnish is in front. Use the host’s purge button or plugin after updates.Common confusion: purging your WordPress cache plugin does not purge Varnish unless the plugin is set up to. Clear each layer: plugin, Varnish, then CDN.
- VPS
A virtual machine with its own operating system and guaranteed resources, carved out of a larger physical server.
Also called: virtual private server
A VPS (virtual private server) gives you your own operating system, root access and dedicated allocations of CPU, memory and disk, sharing only the physical hardware with other virtual machines.
Why it matters: you get control and isolation, but also responsibility. Unless it is managed, you handle security updates, firewalls, backups, monitoring and recovery yourself. A full disk, an expired certificate or a crashed service on an unmanaged VPS stays broken until someone notices.
Example: first checks on a sick VPS are
uptime(load),free -m(memory),df -handdf -i(disk space and inodes), andsystemctl --failed(services that stopped).Common confusion: a VPS is not automatically faster than good shared hosting. Performance depends on the resources allocated and how well the stack is tuned.
W
- WAF
A filter in front of a website that inspects requests and blocks ones that look like attacks, such as SQL injection.
Also called: web application firewall
A WAF (web application firewall) examines HTTP requests against rules and blocks or challenges suspicious ones. It can run at a CDN edge, on the server (for example ModSecurity), or inside WordPress as a plugin.
Why it matters: WAFs block real attacks but also cause false positives: a 403 Forbidden when saving a post containing code, a page builder that will not save, or a payment callback that never arrives. The block is often silent on the WordPress side.
Example: when a specific action returns 403, note the exact time and URL, then check the WAF or ModSecurity log for a rule ID at that time. Whitelist the rule for that URL rather than turning the whole WAF off.
Common confusion: a WAF does not patch vulnerable code. It reduces exposure (virtual patching) while you update. A plugin firewall only runs once PHP starts, so it cannot absorb a large flood the way an edge WAF can.
- WCAG
The W3C's Web Content Accessibility Guidelines, the standard most accessibility laws and audits measure websites against.
Also called: Web Content Accessibility Guidelines
WCAG (Web Content Accessibility Guidelines) is published by the W3C. Version 2.2 became a Recommendation in October 2023. It is organized into success criteria at three levels: A, AA and AAA.
Why it matters: accessibility complaints, demand letters, public sector rules and contracts usually measure a site against WCAG level AA. Common failures are low contrast, missing alt text, unlabeled form fields, keyboard traps and invisible focus.
Example: run an automated checker, then test by hand: use the keyboard only, zoom to 200%, and try a screen reader on your key pages. Automated tools find only part of the problems.
Common confusion: which WCAG version and level applies, and to whom, depends on the law or contract involved, not on WCAG itself; this is not legal advice, so check the law or contract that applies to you. Overlay widgets do not make a site conform.
- Webhook
An automatic message one service sends to a URL on your site when something happens, such as a payment succeeding.
Also called: webhooks, webhook endpoint
A webhook is an HTTP request, usually a POST, that a service sends to a URL you register (the endpoint) when an event occurs. Payment gateways, form tools and email platforms use them to tell your site about payments, refunds, sign-ups and bounces.
Why it matters: if the endpoint is blocked by a firewall or security plugin, redirects, returns an error, or rejects the signature, your site never hears about the event. In a store, that leaves paid orders stuck in Pending payment or On hold.
Example: in the gateway dashboard, open the webhook endpoint and read recent delivery attempts and responses. A 403 points to a firewall; a 404 to a wrong URL; a signature error to an outdated signing secret.
Common confusion: changing the site’s domain or the gateway keys means updating the webhook URL and secret too. Many services retry failed webhooks for a while, so fixed endpoints often catch up on their own.
- Webmail
Reading and sending email in a browser, such as Gmail, Outlook on the web or a host's Roundcube, with no mail app setup.
Also called: Roundcube, webmail client
Webmail is a mail client that runs in the browser. Hosted email often comes with one (Roundcube is common on hosting panels), and Google Workspace and Microsoft 365 have their own.
Why it matters: it is the quickest way to tell whether a problem is the mailbox or your mail app. If webmail works with the same password, the mailbox is fine and the app’s settings or saved password are wrong.
Example: when Outlook keeps asking for a password, log in to webmail with the same address and password. Success there means you should fix the app’s server, port or authentication settings.
Common confusion: webmail at your old host still works after you move email elsewhere, but new mail no longer arrives there once MX records change. Check which provider your MX records point to.
- WebP
A modern image format that is usually much smaller than JPEG or PNG at similar quality, supported by all current browsers.
Also called: WebP image
WebP supports lossy and lossless compression, transparency and animation. All current major browsers support it, and WordPress accepts WebP uploads natively.
Why it matters: switching large JPEGs and PNGs to WebP cuts page weight and improves LCP. Problems arise when a conversion plugin serves WebP files that are missing, or uses rewrite rules the server or CDN ignores, causing broken images.
Example:
cwebp -q 80 INPUT.jpg -o OUTPUT.webpconverts an image, where INPUT.jpg is the original and OUTPUT.webp the new file. In the browser’s Network tab, thecontent-typecolumn shows what was actually served.Common confusion: a file named
.jpgcan be served as WebP by a CDN, and a.webpcan be larger than a well-compressed JPEG. Check real sizes.- WHOIS
A lookup that shows a domain's registrar, key dates, status and nameservers; RDAP is its modern, structured replacement.
Also called: RDAP, Registration Data Access Protocol
WHOIS is the old text-based protocol for looking up domain registration data. RDAP (Registration Data Access Protocol) returns the same kind of data as structured JSON with standard fields. ICANN has made RDAP the definitive source for generic TLDs, and many registries have retired or reduced their WHOIS service.
Why it matters: in an outage, a lookup tells you fast if the domain expired, which registrar holds it, which nameservers are set, and which locks or holds are active. Owner contact details are usually redacted for privacy.
Example:
whois YOURDOMAIN.COMon a terminal, or an RDAP client or web lookup for YOURDOMAIN.COM, where YOURDOMAIN.COM is your domain. Look at the expiry date, the status codes and the name server lines.Common confusion: the "Updated Date" is not proof of a recent change you made; registries update it for many reasons. The nameservers here are the delegation, which may differ from what a DNS dashboard claims.
- Wildcard certificate
A certificate that covers every subdomain at one level, written as *.example.com.
Also called: wildcard SSL
A wildcard certificate lists
*.example.comin its SAN field and is accepted for any single-label subdomain likeshop.example.comorwww.example.com.Why it matters: it simplifies multisite networks and many subdomains, but it does not cover the apex
example.comunless that name is added too, and it does not cover deeper names likedev.shop.example.com. Let’s Encrypt only issues wildcards through DNS-01 validation.Example: a typical request covers both
example.comand*.example.com. With Certbot that means two-dflags and a DNS plugin or manual TXT records.Common confusion: a wildcard certificate does not create subdomains. Each still needs DNS (or a wildcard DNS record) and a server configured to answer for it. One leaked private key exposes every subdomain at once.
- Wildcard DNS
A DNS record starting with an asterisk that answers for any subdomain that has no record of its own.
Also called: wildcard record
A wildcard record such as
*.example.com. A 203.0.113.10answers lookups for names likeanything.example.comthat do not exist explicitly. Multisite networks and SaaS platforms use them to serve many subdomains from one setting.Why it matters: wildcards hide typos and missing records, because every name seems to resolve. They can also send mail lookups or verification checks to unexpected places, and they make subdomain takeovers and phishing lookalikes easier if left pointing at an old server.
Example:
dig RANDOMTEST123.YOURDOMAIN.COM +short, where YOURDOMAIN.COM is your domain. If it returns an IP, a wildcard exists.Common confusion: a wildcard matches only one label at its position and does not cover the apex. It also stops applying below any name that exists explicitly. A wildcard DNS record is not a wildcard certificate; you need both for HTTPS on arbitrary subdomains.
- WP-CLI
The official command-line tool for WordPress, used to manage plugins, users, the database and settings without a browser.
Also called: wp cli, WordPress command line
WP-CLI runs WordPress commands from a terminal over SSH. It loads WordPress the same way a page load does, so it can install and deactivate plugins, reset passwords, run search-replace, export the database and run cron events, even when wp-admin is broken.
Why it matters: when a plugin causes a fatal error,
wp plugin deactivate PLUGIN-SLUGfixes it in seconds, where PLUGIN-SLUG is the plugin’s folder name. If the fatal happens while WordPress loads, add--skip-pluginsor--skip-themesso WP-CLI can still start.Example:
wp plugin list --status=active,wp core verify-checksums,wp db export BACKUP.sql(where BACKUP.sql is the file name to write) andwp user update USERNAME --user_pass=NEWPASSWORDare everyday emergency commands.Common confusion: run it from the WordPress folder (or pass
--path=/PATH/TO/SITE) and as the site’s own user, not root, so files keep the right owner. Some hosts name the binarywp-clirather thanwp.- wp-config.php
The main WordPress configuration file holding database credentials, keys and salts, and site-wide constants.
Also called: wp-config
wp-config.php sits in the WordPress root (or one folder above it). It defines
DB_NAME,DB_USER,DB_PASSWORD,DB_HOST, the$table_prefix, authentication keys and salts, and optional constants such asWP_DEBUG,WP_MEMORY_LIMITandDISABLE_WP_CRON.Why it matters: "Error establishing a database connection" usually means a value here does not match the database. A stray character or a file saved with a byte order mark breaks the whole site. Attackers target it because it holds the database password.
Example: custom constants go above the line
/* That's all, stop editing! Happy publishing. */. Anything added below it, afterwp-settings.phpis loaded, comes too late to take effect.Common confusion: some settings, such as
WP_HOMEandWP_SITEURL, override the database values, so changing the URL in Settings, General does nothing while they are defined here.- wp-content
The WordPress folder holding everything that is yours: themes, plugins, uploads and drop-ins.
Also called: wp-content folder, uploads folder, wp-content/uploads
wp-content contains
themes/,plugins/,mu-plugins/,uploads/(media files, usually organized by year and month) and drop-ins. WordPress core files live outside it and can be replaced at any time.Why it matters: along with the database,
wp-contentis what a backup must include. It is also where malware hides: PHP files insideuploads/are almost never legitimate and are a classic sign of compromise.Example:
find wp-content/uploads -name "*.php"lists PHP files in the uploads folder. Many hosts and security setups block PHP execution there entirely.Common confusion: reinstalling WordPress core does not touch
wp-content, so it does not remove malware hidden in plugins, themes or uploads.- WP-Cron
WordPress's built-in scheduler that runs due tasks when someone visits the site, not at exact times.
Also called: wp cron, wp-cron.php, DISABLE_WP_CRON
WP-Cron checks for due events on page loads and fires a background request to
wp-cron.phpto run them. It handles scheduled posts, update checks, plugin cleanup and many plugin jobs.Why it matters: on a low-traffic site tasks run late or not at all ("missed schedule" posts). On a busy site it can spawn many overlapping requests. If loopback requests are blocked by a firewall, basic auth or DNS, nothing scheduled runs.
Example: add
define( 'DISABLE_WP_CRON', true );towp-config.phpand run a real cron job every few minutes withwp cron event run --due-now.wp cron event listshows what is scheduled and when.Common confusion:
DISABLE_WP_CRONstops the automatic page-load trigger only. Events still exist and still run whenwp-cron.phpis called by real cron.- WP_DEBUG
The wp-config.php switch that turns on WordPress debug mode, usually paired with logging errors to debug.log.
Also called: WP_DEBUG_LOG, WP_DEBUG_DISPLAY, debug.log, debug mode
WP_DEBUG makes WordPress and PHP report errors, warnings and notices.
WP_DEBUG_LOGwrites them towp-content/debug.log(or a path you give it), andWP_DEBUG_DISPLAYcontrols whether they are printed on the page.Why it matters: when you see a white screen or a critical error, turning on the log usually reveals the exact plugin file and line. Showing errors on a live site leaks file paths and breaks layouts, AJAX and REST responses.
Example, in
wp-config.phpabove the "stop editing" line:define( 'WP_DEBUG', true );define( 'WP_DEBUG_LOG', true );define( 'WP_DEBUG_DISPLAY', false );
Common confusion:
debug.login its default location can be downloaded by anyone who guesses the URL, and it grows without limit. Turn logging off, or point it outside the web root, when you are done.- wp_mail
The WordPress function that sends all its email, which by default hands mail to the server's local mailer through PHPMailer.
Also called: wp_mail(), PHPMailer
wp_mail() is the function core and plugins call to send email: password resets, new order notices, form notifications. It uses the bundled PHPMailer library, which by default calls PHP’s
mail()and the server’s local mail program.Why it matters: mail sent this way often fails SPF, DKIM or DMARC for your domain and ends up in spam or rejected. Some hosts disable
mail()entirely. When "the contact form stopped working", the form usually works and the email does not.Example: route mail through an authenticated SMTP or email API service with an SMTP plugin, set the From address to a real mailbox on your domain, and use the plugin’s test email and log. The
wp_mail_failedaction fires with the error when PHPMailer reports a failure.Common confusion:
wp_mail()returning true only means the message was handed off. It does not mean it reached the inbox.- wp_options
The WordPress database table that stores site settings, plugin settings, transients and the site URLs.
Also called: options table
wp_options (with your table prefix) holds key and value pairs:
siteurl,home,active_plugins,templateandstylesheet(the active theme), widget settings, plugin settings and, without an object cache, transients.Why it matters: many emergencies are fixed here. A wrong
siteurlorhomecauses redirect loops; clearingactive_pluginsdeactivates every plugin at once; a bloated table with huge autoloaded rows slows the whole site.Example:
wp option get siteurlandwp option update home 'https://YOURDOMAIN.COM', where YOURDOMAIN.COM is your domain. Without WP-CLI, edit the same rows in phpMyAdmin.Common confusion: many values are serialized PHP arrays. Editing them by hand in phpMyAdmin without fixing the length counts corrupts them.
X
- xmlrpc.php
An older WordPress remote-access endpoint often abused for brute-force and pingback attacks.
Also called: XML-RPC
xmlrpc.php implements the XML-RPC API that apps and services used before the REST API. It is still enabled by default for compatibility with some tools and services that rely on it.
Why it matters: its
system.multicallmethod lets attackers try many passwords in one request, and pingbacks can be abused to make your site attack others. Floods ofPOST /xmlrpc.phpin the access log are a common cause of high load.Example: if nothing you use needs it, block it at the web server or firewall. On Apache or LiteSpeed in
.htaccess: a<Files xmlrpc.php>block containingRequire all denied.Common confusion: some services still depend on XML-RPC, so check before blocking it. Blocking at the server is cheaper than a plugin, because the request never reaches PHP.
