Author: ToolBrainy Team

  • Meta Robots vs Robots.txt: What’s the Difference? (2026)

    Meta Robots vs Robots.txt: What’s the Difference? (2026)

    Robots.txt controls crawling; meta robots and X-Robots-Tag control indexing and other search behaviour after a resource is fetched. To remove a public page with noindex, Google must be allowed to crawl it and read the instruction.

    The one-sentence difference

    Robots.txt controls crawling (whether a bot is allowed to fetch a page). The meta robots tag controls indexing (whether a page that’s been fetched is allowed to appear in search results). Crawling and indexing are two separate stages, and each tool governs a different one.

    What robots.txt does

    Robots.txt is a single file at the root of your domain that tells crawlers which paths they may or may not request. It’s a crawl instruction, issued before the bot ever loads the page:

    robots.txt

    User-agent: *
    Disallow: /wp-admin/
    Disallow: /cart/
    
    Sitemap: https://example.com/sitemap.xml

    Key point: Disallow stops a bot from crawling a URL — it does not guarantee the URL stays out of Google. If other sites link to a disallowed page, Google can still index the URL (usually with no description, because it was never allowed to read the content). If you need to generate a robots.txt file, our Robots.txt Generator builds one in your browser, and the complete robots.txt guide covers every directive.

    What the meta robots tag does

    The meta robots tag lives in the <head> of an individual page and tells search engines what to do after they’ve crawled it. The most common use is keeping a page out of the index:

    In the page <head>

    <meta name="robots" content="noindex, follow">

    This says: don’t show this page in search results, but do follow its links. Because it’s a per-page instruction that Google reads directly, noindex is the reliable way to keep a page out of search — unlike a robots.txt Disallow.

    Common values:

    • index, follow — the default; permits indexing and link following but does not guarantee either.
    • noindex, follow — exclude the page from indexing while permitting link following; neither crawling nor link-equity transfer is guaranteed.
    • noindex, nofollow — hide the page and ignore its links.
    • noindex can also be sent as an HTTP header (X-Robots-Tag) for non-HTML files like PDFs.

    The mistake almost everyone makes

    Here’s the trap: to reliably noindex a page, Google must be able to crawl it and read the meta robots tag. If you Disallow that same page in robots.txt, Google never fetches it, never sees the noindex, and the URL can linger in search results anyway.

    ❌ Conflicting signals

    # robots.txt
    Disallow: /private-page/
    
    # /private-page/ <head>
    <meta name="robots" content="noindex">
    # Google never crawls it, never sees noindex → may stay indexed

    Rule of thumb: if you want a page gone from Google, use noindex and make sure robots.txt allows crawling of it. Only use robots.txt Disallow to save crawl budget on sections you don’t care about indexing at all.

    When to use which

    Goal Use
    Keep a page out of Google reliably Meta robots noindex (allow crawling)
    Stop bots wasting crawl budget on admin/cart/search URLs robots.txt Disallow
    Exclude a public page while permitting link following noindex, follow
    Block a whole folder from crawling robots.txt Disallow: /folder/
    Keep a PDF or image out of search X-Robots-Tag: noindex header
    Point crawlers to your sitemap robots.txt Sitemap: line

    Choose the right method for your goal

    Method Where it is set What it cannot do
    robots.txt Public file at the origin root Guarantee removal from search or prevent access by people
    Meta robots HTML head of a crawlable page Protect confidential data or apply to a PDF’s HTML-free response
    X-Robots-Tag HTTP response header for HTML or other files Work when the crawler cannot fetch the response
    Authentication and authorization Application or server access controls Instantly erase an already indexed public copy

    A public page that should not appear in search

    Use noindex, keep the page crawlable, and remove it from the XML sitemap. This is appropriate only if anyone with the URL may still view it. In WordPress, use the page’s SEO controls and verify the resulting HTML rather than placing a visible meta tag in the article body. See WordPress robots.txt and indexing checks.

    A PDF that should stay publicly downloadable

    Send X-Robots-Tag: noindex in the PDF’s actual HTTP response. Ask the hosting provider or use the appropriate server configuration. A meta tag on the page linking to the PDF does not control the PDF itself. Keep the PDF crawlable until Google can process its header.

    HTTP/1.1 200 OK
    Content-Type: application/pdf
    X-Robots-Tag: noindex

    Private or confidential information

    Require authentication and restrict access to authorized users. Neither noindex nor robots.txt is a security feature. If private information has already been published, restrict access immediately and investigate removal separately. Search Console’s removal process can temporarily hide results; it does not replace a permanent access or indexing change.

    Duplicate public URLs

    First decide which URL should be the preferred version. Consistent internal links, canonical signals and appropriate redirects address duplication. Do not assume a noindex instruction is a substitute for choosing and linking to the canonical page.

    Apply and verify noindex step by step

    1. Confirm the exact URL and desired outcome

    Record whether you need public access without search visibility, permanent deletion, or restricted access. Check the final URL after redirects; inspecting a different protocol or host can produce misleading results.

    2. Allow crawling and add the directive

    Check the applicable rules with the robots.txt URL tester. For an HTML page, add the robots tag through your SEO system. For a PDF, configure the response header. Avoid using two SEO systems to issue conflicting directives.

    3. Inspect what the live response contains

    Inspect a page’s meta robots tag using the Meta Tag Analyzer, then inspect response headers separately in your browser’s Network panel. Check for a redirect, another robots tag or a crawler-specific directive. A page-source check alone will not reveal an X-Robots-Tag header.

    4. Update discovery signals and verify in Search Console

    Exclude noindex URLs from the sitemap using the XML sitemap validation checklist. Inspect the exact URL in Search Console and distinguish stored indexing data from a live test. Allow time for recrawling and processing; a live test does not promise immediate removal.

    Resolve conflicting directives

    Disallow plus noindex

    Remove the crawl block if the resource is intentionally public and you need Google to read noindex. Keep access controls for private information. Do not temporarily expose confidential content just to let a crawler see a tag.

    Index plus noindex

    Check both HTML tags and HTTP headers, including crawler-specific directives. For Google, the more restrictive applicable instruction generally controls conflicts. Remove an unintended noindex at its source and clear relevant caches; adding index elsewhere does not cancel it.

    Noindex plus follow

    Follow permits link following; it does not guarantee that Google will continue crawling the page indefinitely or transfer ranking value through every link. Link important pages directly from other indexable pages. Consult the complete robots.txt rule-matching guide when user-agent groups make crawl results unexpected.

    How they work together

    Used correctly, they’re a team: robots.txt keeps crawlers out of the areas that would waste their time (admin, cart, faceted URLs), while meta robots precisely controls which of your crawlable pages actually show up in search. Neither one forces Google to index a page — that’s always Google’s call — but together they give clear crawl and index signals.

    The bottom line

    Remember the split: robots.txt = crawling, meta robots = indexing. To remove a page from search, reach for noindex and leave it crawlable. To conserve crawl budget on junk URLs, reach for robots.txt Disallow. Never block a page in robots.txt and expect a noindex on it to work — that’s the contradiction that quietly leaves public pages in Google.

    Frequently asked questions

    Does robots.txt Disallow remove a page from Google?

    Not reliably. Disallow stops crawling, but if the URL is linked from elsewhere, Google can still index it (often without a description). To remove a page from search, use a meta robots noindex tag and keep the page crawlable.

    Can I use both robots.txt and meta robots on the same page?

    You can, but be careful: if robots.txt disallows the page, Google can’t crawl it and therefore can’t read its noindex tag. For a noindex to work, the page must be crawlable.

    What’s the difference between noindex and nofollow?

    noindex keeps the page out of search results. nofollow tells search engines not to follow the links on that page. They’re independent — noindex, follow is a common combination.

    Where does the meta robots tag go?

    In the <head> section of the individual page’s HTML: <meta name="robots" content="noindex, follow">. For non-HTML files like PDFs, use the X-Robots-Tag HTTP header instead.

    Which should I use to save crawl budget?

    robots.txt. Disallowing large, low-value sections (admin, internal search, faceted URLs) stops crawlers wasting requests there. Meta robots doesn’t save crawl budget because the page still has to be crawled to read the tag.

    Related tools & guides

    Reference documentation

    See Google’s robots meta tag and X-Robots-Tag documentation for supported directives and conflict handling.

    Editorial note: Updated September 29, 2026 with AI assistance. Instructions were reviewed against the relevant tool implementation and documentation; examples are illustrative rather than claims of personal experience.

  • The Complete XML Sitemap Guide (2026)

    The Complete XML Sitemap Guide (2026)

    An XML sitemap lists the canonical URLs you want search engines to discover. Create or locate the sitemap, check its URLs, and submit it in Search Console. A successful submission does not guarantee indexing.

    What is an XML sitemap?

    An XML sitemap is a machine-readable file — almost always at /sitemap.xml — that lists the URLs on your site you want search engines to crawl and index. Each entry can include a few optional hints: when the page was last modified, how often it changes, and its relative priority.

    Think of it as the index at the back of a book. Search engines can find your pages by following links, but a sitemap provides another discovery path but does not guarantee that every listed URL will be crawled or indexed — especially deep pages, newly published content, or pages that aren’t linked from many places yet.

    What a real sitemap looks like

    A minimal, valid XML sitemap follows the sitemaps.org protocol and looks like this:

    sitemap.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
      <url>
        <loc>https://example.com/</loc>
        <lastmod>2026-07-01</lastmod>
      </url>
      <url>
        <loc>https://example.com/blog/</loc>
        <lastmod>2026-07-15</lastmod>
      </url>
    </urlset>

    A URL sitemap requires the <urlset> wrapper with the correct namespace, a <url> element for each entry, and a <loc> inside each entry. Everything else is optional. In practice, <lastmod> is the one extra field worth keeping accurate — Google uses it as a hint for re-crawling. Google ignores <changefreq> and <priority>, so don’t lose sleep over them.

    Sitemap index files (for bigger sites)

    A single sitemap can hold up to 50,000 URLs or 50 MB uncompressed, whichever comes first. Larger sites split their URLs across several sitemaps and tie them together with a sitemap index file:

    sitemap-index.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
      <sitemap>
        <loc>https://example.com/post-sitemap.xml</loc>
      </sitemap>
      <sitemap>
        <loc>https://example.com/page-sitemap.xml</loc>
      </sitemap>
    </sitemapindex>

    This is exactly how WordPress, Yoast and most CMS platforms structure things by default: one index that points to separate sitemaps for posts, pages, categories and so on. You submit the index once and search engines discover the rest.

    Do you actually need a sitemap?

    Honest answer: a small, well-linked site (say, under 100 pages where everything is reachable from the menu) will get crawled fine without one. But a sitemap becomes genuinely valuable when:

    • Your site is large, or grows quickly.
    • You publish new content often and want it discovered fast.
    • Some pages aren’t well linked internally (orphan pages).
    • Your site is new and has few backlinks pointing in.
    • You have rich media (images, video) you want surfaced in the right places.

    There’s no downside to having one, so the practical rule is simple: always publish a sitemap. It costs nothing and only helps discovery.

    Choose which URLs to include

    Start with public pages you want indexed. For each entry, prefer the final canonical URL returning a successful response. A sitemap is not a list of every address your server can generate.

    • Include: useful articles, product or service pages, and other canonical public pages intended for search.
    • Exclude redirects: list the final destination instead of its old URL.
    • Exclude missing pages: remove deleted URLs returning 404 or 410.
    • Exclude noindex pages: keep search-excluded pages out of the sitemap, even when they return HTTP 200.
    • Remove duplicates: avoid fragments, tracking parameters and alternate URLs for the same content unless they are intentionally distinct canonical pages.

    If a URL is blocked or noindexed unintentionally, fix the page’s configuration rather than merely deleting it from the sitemap. Read how to check noindex conflicts before submitting URLs.

    How to create an XML sitemap

    WordPress

    Since WordPress 5.5, core generates a sitemap automatically at /wp-sitemap.xml. If you use an SEO plugin (or the WPOS SEO engine), you’ll usually get a richer, cleaner sitemap at /sitemap.xml or /sitemap_index.xml. You rarely need to build one by hand.

    Shopify

    Shopify auto-generates /sitemap.xml for every store, split into products, collections, pages and blogs. It updates automatically — you just submit the URL.

    Static or custom sites

    For a hand-built site or a small custom app, the fastest route is a generator: paste the complete URLs you want to include and download a ready-to-upload file. Our free XML Sitemap Generator does exactly this — no signup, and the file is built right in your browser.

    Build a sitemap from a manual URL list

    1. Collect canonical URLs

    Export or assemble the full public URLs you intend to list. Check the hostname and protocol, remove duplicates, and keep a copy of the list for later updates. Our generator does not crawl a homepage or verify that each URL is indexable.

    2. Generate and inspect the XML

    Open the XML Sitemap Generator to build a sitemap from a URL list. Choose Paste multiple URLs, enter one address per line, and click Add All URLs. Review the generated entries. The tool exposes priority and change-frequency fields, but Google ignores those fields; increasing priority is not a ranking or crawl-speed setting.

    3. Publish through your site’s normal deployment method

    Download sitemap.xml and publish it at a stable public URL. Do not overwrite an automatically maintained CMS sitemap with a static file unless you deliberately intend to maintain the replacement. For WordPress, first find your WordPress sitemap and active robots.txt source.

    Validate before submitting

    1. Open the sitemap URL and confirm HTTP 200 with actual XML, not an HTML error or browser challenge.
    2. Check the XML namespace, closing tags and URL escaping. An ampersand in a URL must be encoded as &amp; in XML.
    3. Open representative listed URLs. Confirm final destinations, canonical tags and absence of unwanted noindex directives.
    4. Keep each sitemap within 50,000 URLs and 50 MB uncompressed. Split larger lists and reference them from a sitemap index.
    5. Confirm any child sitemaps in an index also load. Submitting an index that references broken files does not repair those files.
    6. Use honest last-modified dates and retain ordinary internal links to the listed pages.

    Use the Meta Tag Analyzer to review page-level indexing signals; inspect HTTP headers separately for X-Robots-Tag. Then add a sitemap directive to robots.txt using the full sitemap URL.

    How to submit your sitemap to Google

    1. Open Google Search Console and select your property.
    2. In the left menu, go to Sitemaps.
    3. Enter the sitemap URL or the path requested by the selected property’s interface (e.g. https://example.com/sitemap.xml) and click Submit.
    4. Wait for the status to read Success — Google will report how many URLs it discovered.

    You don’t need to resubmit every time you publish; search engines re-fetch known sitemaps on their own schedule. Submit once, then monitor fetch errors and URL coverage as you publish or remove content.

    Link your sitemap from robots.txt

    Beyond Search Console, the other standard way to advertise your sitemap is a single line in your robots.txt file. Every major crawler reads it:

    robots.txt

    User-agent: *
    Allow: /
    
    Sitemap: https://example.com/sitemap.xml

    This is the belt-and-suspenders approach: the Sitemap: directive means bots that never touch Search Console (Bing, DuckDuckGo, and AI crawlers) still find your sitemap. If you don’t have a robots.txt yet, our Robots.txt Generator can create one with the sitemap line already included. For the full breakdown, see our complete robots.txt guide.

    Troubleshoot sitemap and indexing reports

    “Couldn’t fetch” or an HTML response

    Check the exact submitted address, response status, redirect destination and public accessibility. Confirm that a login, firewall or challenge is not replacing the XML. A successful browser load does not prove Google receives the same response; hosting logs can help establish the difference.

    “Success” but some pages are not indexed

    Success means Google processed the sitemap; it is not approval of every page. Inspect an affected URL and distinguish “Discovered — currently not indexed” from “Crawled — currently not indexed.” The first says Google knows the URL but has not yet crawled it; the second says a crawl occurred without indexing. Neither status alone identifies the underlying cause.

    Submitted and indexed counts differ

    Review representative URLs for duplicates, alternate canonicals, noindex directives, soft errors and weak internal discovery. Assess whether the content offers useful, distinct information. Correct the actual issue, update links or sitemap entries when needed, and monitor later processing. Repeatedly submitting an unchanged sitemap is not a fix.

    A migration leaves old URLs behind

    Regenerate the sitemap with final URLs, check redirects from old pages, update internal links and submit the current index. Avoid simultaneously listing old redirects and their replacements as canonical pages.

    Common sitemap mistakes

    • Listing non-canonical or redirected URLs. Only include the final, indexable version of each page. Never list URLs that 301/302 or 404.
    • Including noindexed pages. If a page is noindex, keep it out of the sitemap — mixing signals confuses crawlers.
    • Blocking the sitemap in robots.txt. Make sure you haven’t accidentally disallowed the path the sitemap lives on.
    • Stale lastmod dates. Use the date of the last significant content change. An unchanged page can correctly keep the same date; do not refresh every date merely because the sitemap was regenerated. Omit the field if you cannot keep it accurate.
    • Forgetting to update after a migration. After changing domains or URL structures, regenerate and resubmit.

    Sitemaps vs robots.txt: what does what

    These two files are often confused, but they do opposite jobs:

    • The sitemap says “here’s what I want you to crawl.” It’s an invitation.
    • robots.txt says “here’s what I don’t want you to crawl.” It’s a boundary.

    Used together, they give search engines a clear map plus clear no-go zones. Neither one forces indexing — that’s still Google’s call — but together they make its job far easier.

    The bottom line

    An XML sitemap won’t magically boost your rankings, but it provides a discovery signal for pages that may otherwise be hard to find. Publish one, keep it clean (indexable, canonical URLs only), reference it from robots.txt, and submit it once in Search Console. Then get back to the work that actually moves rankings — great content and links.

    Frequently asked questions

    Where should my sitemap be located?

    At the root of your domain, typically https://yoursite.com/sitemap.xml. It can technically live elsewhere if you submit it directly in Search Console, but the root is the convention every crawler expects.

    How often should I update my sitemap?

    If it’s generated automatically (WordPress, Shopify, most SEO plugins), it updates itself whenever you publish. For a hand-built file, regenerate it whenever you add or remove pages. You don’t need to resubmit each time — search engines re-crawl known sitemaps on their own.

    What’s the maximum size of a sitemap?

    50,000 URLs or 50 MB uncompressed per file, whichever comes first. Beyond that, split your URLs across multiple sitemaps and reference them from a single sitemap index file.

    Do I need both an XML sitemap and a robots.txt?

    Not every site needs both, and neither guarantees indexing. They do different jobs. The sitemap lists pages you want crawled; robots.txt sets rules for what shouldn’t be crawled. Adding a Sitemap: line to robots.txt is the best-practice way to link the two.

    Will a sitemap improve my Google rankings?

    Not directly. A sitemap helps Google discover and crawl your pages faster and more completely, which is a prerequisite for ranking — but the ranking itself still depends on content quality, relevance and links.

    Should I include images and videos in my sitemap?

    You can, using the image and video sitemap extensions, if visual content is important to your traffic (e.g. a photography or recipe site). For most sites the standard URL sitemap is enough.

    Related tools & guides

    Reference documentation

    Consult Google’s sitemap creation guidance and the Sitemaps XML protocol for limits, fields and escaping requirements.

    Editorial note: Updated September 29, 2026 with AI assistance. Instructions were reviewed against the relevant tool implementation and documentation; examples are illustrative rather than claims of personal experience.

  • Robots.txt for WordPress: The Complete 2026 Guide

    Robots.txt for WordPress: The Complete 2026 Guide

    Before editing WordPress robots.txt, identify whether WordPress, a plugin, or a physical file serves it. Back up the current rules, make the smallest necessary change, and verify the public response and important URLs.

    What robots.txt actually does on WordPress

    A robots.txt file sits at the root of your domain (https://yoursite.com/robots.txt) and tells search engine crawlers which parts of your site they are welcome to request. It is the first file Googlebot looks for when it visits.

    Two things are worth burning into memory before you touch anything:

    • Robots.txt controls crawling, not indexing. Blocking a URL here stops bots from fetching it — but a blocked URL can still appear in search results if other pages link to it. To keep something out of the index, you need a noindex meta tag, not a Disallow rule.
    • It is a public file. Anyone can read yours. Never use it to “hide” login pages, private folders, or sensitive URLs — you are just handing out a map.

    The virtual file gotcha (this trips up everyone)

    Here is the part unique to WordPress. By default there is no physical robots.txt file on your server. WordPress creates a virtual one on the fly every time a bot requests it, through WordPress’s robots response, which plugins can customize with the robots_txt filter. If you FTP into your site and look in the root folder, you will find nothing named robots.txt — but the URL still works.

    This matters because it changes how you edit it:

    • If no physical file exists, WordPress serves its virtual default (shown below).
    • The moment you upload a real robots.txt file to the site root, WordPress stops generating the virtual one and serves your file instead. Your file wins.
    • SEO plugins differ: some filter the virtual response, while file editors may create or modify a physical file. Editor availability depends on the plugin, permissions and hosting setup. Check the active plugin’s documentation before assuming where changes are stored.

    What WordPress puts in the default robots.txt

    Out of the box, a WordPress site serves something close to this:

    Default WordPress robots.txt

    User-agent: *
    Disallow: /wp-admin/
    Allow: /wp-admin/admin-ajax.php
    
    Sitemap: https://yoursite.com/wp-sitemap.xml

    It is intentionally minimal, and honestly it is close to correct for most sites. It blocks the admin area, keeps admin-ajax.php open (many themes and plugins need it for front-end features), and points to the core sitemap. If your whole SEO setup is “leave it alone,” you could do a lot worse.

    Identify what serves your file

    Check the public URL and save a copy

    Open the exact site’s /robots.txt. Record the date, content and sitemap address. A WordPress site in a subdirectory still needs the appropriate robots file at the origin root. Confirm that you are checking the production hostname rather than a staging or www variant.

    Check Settings → Reading

    On a public site intended for search, review Discourage search engines from indexing this site. This setting is a visibility request, not authentication. Check the generated page-level robots directives as well as robots.txt; behaviour depends on WordPress and the active SEO configuration. Keep private staging sites protected with access controls.

    Identify physical files, plugins and caches

    Check whether a physical file exists in the public document root through your host’s file manager. Determine whether an active plugin filters the virtual response. Server configuration normally gives a physical file precedence, but hosting rules can alter routing. Compare your intended edit with the public response rather than guessing from the editor screen.

    Edit robots.txt safely

    Choose one authoritative editing route

    If the active plugin provides the intended editor, use it and confirm what it manages. If a physical file controls the response, use the host’s supported file editor. Do not maintain conflicting copies in several plugins. Preserve the old content before changing anything.

    Make one narrow change

    Write down which URLs should become allowed or blocked. Avoid adding broad exclusions for uploads, scripts or styles. If your actual goal is search exclusion, choose noindex instead of Disallow and keep public resources crawlable so Google can read that instruction.

    Publish, clear the relevant cache and recheck

    After saving, request the public robots URL again. If the response is unchanged, check the physical-versus-virtual source and the applicable hosting/CDN cache. Clear only the relevant cache through the supported controls, then repeat your tests. Do not assume repeated editor saves will resolve a routing conflict.

    Start with minimal rules

    A minimal baseline is usually easier to verify than a long collection of copied exclusions. Replace the example domain and sitemap path with the sitemap your site actually serves:

    User-agent: *
    Disallow: /wp-admin/
    Allow: /wp-admin/admin-ajax.php
    
    Sitemap: https://example.com/wp-sitemap.xml

    This is a starting point, not a universal prescription. A plugin may use /sitemap_index.xml or another endpoint. Keep the active sitemap and avoid introducing another SEO plugin just to obtain a different filename. Use the robots.txt generator and URL tester to check the complete rules before publication.

    Handle optional exclusions deliberately

    Internal search and parameter URLs

    Before adding /?s=, /search/ or reply-parameter rules, collect actual URL examples from your site. A root-anchored rule may not cover nested paths or a parameter in a different position. Conversely, a broad wildcard can match useful content. For every intended block, test a nearby URL that should remain allowed.

    Archives and store pages

    Decide whether category and tag archives offer useful landing pages before excluding them. Public noindex pages must remain crawlable for the directive to be read. Cart, checkout and account privacy relies on application access controls; a robots rule is not protection for customer information.

    Crawler-specific groups

    A separate Googlebot group can supersede the wildcard group for Google. An Allow: / group can therefore discard restrictions you expected it to inherit. Keep a single general group unless you need a deliberate difference, and understand user-agent selection and rule matching before adding exceptions.

    What you should NOT block on WordPress

    This is where most robots.txt damage happens. A few Disallow lines that look tidy will actively hurt your rankings:

    • Never block /wp-content/. Your images, and often your CSS and JavaScript, live here. If Google cannot fetch your CSS/JS, it cannot render your pages properly and may judge them as broken or non-mobile-friendly.
    • Never block /wp-includes/ wholesale. Older “SEO hardening” guides told you to. Modern Google explicitly asks you not to — it needs those assets to render.
    • Do not block /wp-content/uploads/. That is your media library. Blocking it kills Google Images traffic.
    • Do not block your category or tag archives here if you want them indexed. If you want them out of the index, use a noindex tag (via your SEO plugin) instead — see the distinction below.

    Blocking specific bots

    You can set rules per crawler. A common example is allowing Google fully while slowing down or blocking a scraper:

    Per-bot rules

    User-agent: Googlebot
    Allow: /
    
    User-agent: AhrefsBot
    Crawl-delay: 10
    
    User-agent: SemrushBot
    Disallow: /

    A word of caution: well-behaved bots (Google, Bing) respect these rules; malicious scrapers ignore robots.txt entirely. Use it for crawl management, not security. And in 2026, many site owners also add explicit rules for AI crawlers like GPTBot and PerplexityBot — check each operator’s documentation: search, user-requested fetches and training may use different agents.

    WooCommerce and plugin considerations

    If you run a store, WordPress and WooCommerce generate URLs you almost certainly do not want crawled:

    WooCommerce additions

    Disallow: /cart/
    Disallow: /checkout/
    Disallow: /my-account/
    Disallow: /*add-to-cart=*

    The cart, checkout, and account pages are user-specific and have no search value, and the add-to-cart query strings create endless duplicate URLs. Blocking them keeps crawlers focused on your product and category pages, where the traffic actually is.

    Common WordPress robots.txt mistakes

    • Leaving a Disallow: / from a staging site. Developers block everything during a build. If that line survives launch, you have told Google to crawl nothing. This is one possible cause of blocked crawling, not proof of the cause of a traffic drop.
    • Using robots.txt to deindex. Blocking a page here does not remove it from Google — it just stops Google from seeing the noindex tag on it. To remove a page, allow crawling and add noindex.
    • Blocking CSS/JS. Covered above, but it is worth repeating: it breaks rendering.
    • Forgetting the sitemap line. It is a free, direct signal to crawlers. Always include it.
    • Editing the wrong file. If your SEO plugin manages a virtual robots.txt but you also uploaded a physical one, the physical file wins and your plugin edits do nothing.

    Robots.txt vs noindex: which to use

    This is the distinction that fixes 90% of confusion. They solve different problems:

    When to use which

    Goal: Save crawl budget on junk URLs  → robots.txt Disallow
    Goal: Keep a page out of Google       → noindex meta tag
    Goal: Exclude a public page from search → allow crawl + noindex
                                            (NOT Disallow — the bot must
                                             be able to see the noindex)

    Rule of thumb: if you never want a bot to fetch it, use robots.txt. If you are fine with fetching but want it kept out of search results, use noindex. If you want a page gone from Google, do not block it in robots.txt, because then Google can’t read the noindex tag telling it to leave.

    How to test your robots.txt

    Test representative URLs

    Use the robots.txt tester to test your WordPress robots.txt rules against the homepage, a recent post, a category, an upload, a stylesheet, a script and the admin AJAX endpoint. Add the search or parameter URLs you intend to exclude. Save expected and actual results for the relevant crawler.

    Check the actual sitemap and page directives

    Open the address named by the Sitemap directive. Follow the XML sitemap validation checklist to confirm XML, canonical URLs and no unwanted noindex entries. Check a representative page’s head and response headers; a permissive robots file does not cancel noindex elsewhere.

    Review Search Console after publication

    Check the robots.txt report’s fetched version and date, then inspect an important URL. Separate stored indexing information from a live test. Watch for recrawling rather than repeatedly changing working rules to force indexing.

    Investigate access errors separately

    If requests receive 403, 429 or 5xx responses, involve hosting support and provide the affected URL and time. Ask for verified Googlebot log evidence. A challenge shown to your own browser does not establish that Googlebot is blocked. Restore your backup if an actual rule regression is found.

    Frequently asked questions

    Does WordPress have a robots.txt file by default?

    Yes, but it is virtual — generated in memory, not saved as a file on your server. Visiting yoursite.com/robots.txt shows it. As soon as you upload a real file to the site root, WordPress serves that instead.

    How do I edit robots.txt in WordPress without FTP?

    Use an SEO plugin. Check whether your active SEO plugin provides a robots.txt editor and whether it changes a physical file or filters the virtual response. Features and permissions vary. If no editor is available, use your host’s supported file-management workflow.

    Should I block wp-admin in robots.txt?

    WordPress already does, and that is fine — but always keep the Allow: /wp-admin/admin-ajax.php line, because many themes and plugins use that endpoint for front-end functionality that Google needs to render.

    Will robots.txt remove a page from Google?

    No. Blocking a URL stops crawling, but the page can still be indexed from external links. To remove a page, allow crawling and add a noindex meta tag so Google can see the instruction to drop it.

    Do I need a robots.txt file at all?

    Not strictly — a site with no robots.txt is crawled normally. But a good one saves crawl budget on junk URLs and points bots to your sitemap, so it is worth having on any WordPress site.

    Where do I add the sitemap in robots.txt on WordPress?

    Add a line Sitemap: https://yoursite.com/wp-sitemap.xml (or your plugin’s sitemap URL) anywhere in the file — it is not tied to a User-agent block. Point it at whichever sitemap your site actually serves.

    The short version

    For most WordPress sites, the default robots.txt is nearly right — the wins come from a few careful additions (block internal search and store-only URLs, always include your sitemap) and, more importantly, from not making the classic mistakes: never block CSS/JS or /wp-content/, never leave a staging Disallow: / in place, and never confuse robots.txt with noindex. Get those right, verify in Search Console, and review the file again after migrations, plugin changes or indexing problems.

    Ready to build yours? Generate a valid file in seconds with the Robots.txt Generator, pair it with the XML Sitemap Generator, and if you want the full background, read The Complete Robots.txt Guide 2026.

    Reference documentation

    See WordPress’s robots response documentation and Google’s robots.txt specification. Plugin editors differ, so use the documentation for the plugin active on your own site.

    Editorial note: Updated September 29, 2026 with AI assistance. Instructions were reviewed against the relevant tool implementation and documentation; examples are illustrative rather than claims of personal experience.

  • The Complete Robots.txt Guide 2026

    The Complete Robots.txt Guide 2026

    Robots.txt tells compliant crawlers which URLs they may request. It does not reliably prevent indexing or protect private content. This guide explains how to write rules, test their effects, and publish changes safely.

    What is robots.txt?

    Robots.txt is a plain text file that lives in the root folder of your website. Its job is to tell automated visitors — search engine crawlers, bots, and scrapers — which parts of your site they’re allowed to request and which parts they should leave alone.

    When a well-behaved crawler like Googlebot arrives at your site, the first thing it does is look for a file at a very specific address:

    https://yourdomain.com/robots.txt

    If it finds one, it reads the rules before crawling anything else. If it doesn’t find one, it assumes everything is fair game and crawls whatever it can reach. That’s an important point people miss: no robots.txt file means “crawl everything,” not “crawl nothing.”

    The name is short for “robots exclusion” and the format is governed by the Robots Exclusion Protocol, a standard that’s been around since 1994 and was finally formalized by the IETF in 2022. Every major search engine respects it.

    Robots.txt is a request, not a lock. Good bots obey it. Malicious bots and scrapers can — and do — ignore it completely. Never use robots.txt to hide sensitive information; use passwords and proper access control for that.

    Why robots.txt matters for SEO

    You might be wondering why you’d ever want to stop search engines from crawling parts of your site. Isn’t more crawling better? Not always. Here’s why the file matters.

    It protects your crawl budget

    Search engines don’t crawl every page on every site on every visit. They allocate a rough budget of how many pages they’ll fetch from you in a given window. If a big chunk of that budget gets spent on pages that don’t matter — internal search results, filter combinations, admin URLs — your genuinely important pages get crawled less often. Robots.txt lets you steer crawlers away from the low-value stuff.

    It keeps clutter out of the crawl path

    Most sites generate a surprising number of throwaway URLs: session parameters, faceted navigation, print versions, staging directories. Blocking these keeps crawlers focused on the content you actually want ranked.

    It points crawlers to your sitemap

    Robots.txt is also the conventional place to announce where your XML sitemap lives, which helps search engines discover your important pages faster. We’ll cover that pairing in detail later.

    It prevents server strain

    On large or resource-heavy sites, aggressive crawling can slow things down for real visitors. Thoughtful robots.txt rules reduce unnecessary requests.

    The flip side is the danger I opened with: because robots.txt is so powerful, a careless rule can prevent crawling of pages you want ranked. Respect it, test it, and change it deliberately.

    Robots.txt syntax explained

    The good news is that the syntax is genuinely simple. A robots.txt file is a list of rules, and each rule has two parts: who the rule applies to, and what they can or can’t do.

    Here is the smallest useful example:

    User-agent: *
    Disallow: /private/

    Read out loud, that says: “To every crawler (* means all of them), you are not allowed to crawl anything inside the /private/ folder.” Everything else on the site is allowed by default.

    A few rules of the road for the format itself:

    • Each directive goes on its own line.
    • Directive names are not case-sensitive (User-agent and user-agent both work), but the paths you list are case-sensitive.
    • Lines starting with # are comments and are ignored by crawlers — use them to leave notes for yourself.
    • Paths are relative to the root, always starting with a /.
    • A blank line separates one rule group from the next.

    How Google selects and matches rules

    Select the applicable user-agent group first

    For Google, the most specific matching user-agent group takes precedence over the wildcard group. Rules in a Googlebot group do not automatically inherit the restrictions in User-agent: *. Multiple groups for the same matching user agent are combined. When adding a special group, repeat the restrictions that crawler must still follow.

    User-agent: *
    Disallow: /search/
    
    User-agent: Googlebot
    Disallow: /preview/

    In this example Googlebot is blocked from /preview/, but the wildcard group’s /search/ restriction does not apply to it. If both paths should be blocked for Googlebot, put both rules in its group. Avoid a special group unless you need different behaviour.

    Use the longest matching path; Allow wins a tie

    Within the applicable group, Google uses the most specific matching path. Where Allow and Disallow have equal specificity, the less restrictive Allow wins. File order is not a reliable way to override a rule. For the standard WordPress admin example, /wp-admin/admin-ajax.php is more specific than /wp-admin/, so it remains crawlable.

    Test wildcards, case and query strings

    * matches a sequence of characters and $ anchors the end. Rules match the path and query string, not the URL fragment after #. Paths are case-sensitive. A pattern beginning /?sort= does not cover a parameter on every product or category path.

    Rule Test URL path Expected result from this rule
    Disallow: /search /searching-tips/ Blocked: the prefix is broader than /search/
    Disallow: /*.pdf$ /report.pdf Blocked
    Disallow: /*.pdf$ /report.pdf?download=1 Not blocked by this rule: the URL does not end in .pdf
    Disallow: /Private/ /private/ Not blocked by this rule: case differs

    These are isolated examples; another rule can change the final result. Use the robots.txt generator and URL tester with the complete file and actual URL variants, including parameters. Treat its output as a rule check, not proof of what Google has fetched.

    The common directives

    You only need to understand four directives to handle 95% of real-world situations. Let’s take them one at a time.

    User-agent

    This line names the crawler a rule group applies to. The asterisk * is a wildcard meaning “all crawlers.” You can also target specific bots by name:

    # Rules for everyone
    User-agent: *
    Disallow: /cart/
    
    # A special rule just for Google's image crawler
    User-agent: Googlebot-Image
    Disallow: /private-photos/

    Some crawler names worth knowing: Googlebot (Google’s main crawler), Bingbot (Microsoft Bing), Googlebot-Image, and increasingly the AI crawlers like GPTBot and ClaudeBot that fetch content for large language models.

    Disallow

    This tells the named crawler not to request URLs that begin with the given path. A few examples make the pattern clear:

    Disallow: /admin/        # blocks the whole /admin/ folder
    Disallow: /search        # blocks any URL starting with /search
    Disallow: /*.pdf$        # blocks every URL ending in .pdf
    Disallow:                # an empty Disallow blocks nothing — allows all

    Notice the last one. An empty Disallow: value is the standard way to say “this crawler may access everything.”

    Allow

    Allow is the exception-maker. It’s most useful when you’ve blocked a whole folder but want to permit one specific thing inside it:

    User-agent: *
    Disallow: /wp-admin/
    Allow: /wp-admin/admin-ajax.php

    That blocks the entire WordPress admin area except the one file that themes and plugins legitimately need crawlers to reach. When rules conflict, most modern crawlers follow the most specific (longest) matching path, so the Allow wins here.

    Sitemap

    The Sitemap directive announces the full URL of your XML sitemap. Unlike the others, it isn’t tied to any user-agent — it’s a standalone line, usually placed at the bottom of the file:

    Sitemap: https://yourdomain.com/sitemap.xml

    You can list more than one sitemap line if you have multiple sitemaps. Always use the full, absolute URL here, not a relative path.

    A note on Crawl-delay

    You may see Crawl-delay: 10 in older files, meant to tell a crawler to wait ten seconds between requests. Be aware that Google ignores this directive entirely — the former Search Console crawl-rate limiter is no longer available. Investigate server capacity and crawl behaviour instead. Bing and a few others still honor it, so it’s not useless, just misunderstood.

    WordPress robots.txt examples

    WordPress is where most people meet robots.txt for the first time. By default WordPress generates a small virtual file for you, but the moment you want real control you’ll want your own. Here’s a sensible, safe starting point for a typical WordPress site:

    User-agent: *
    Disallow: /wp-admin/
    Allow: /wp-admin/admin-ajax.php
    Disallow: /?s=
    Disallow: /search/
    
    Sitemap: https://yourdomain.com/wp-sitemap.xml

    What each line is doing:

    • Disallow: /wp-admin/ keeps crawlers out of the dashboard.
    • Allow: /wp-admin/admin-ajax.php re-opens the one file plugins need.
    • Disallow: /?s= and /search/ stop internal search-result pages from being crawled — these are classic crawl-budget wasters.
    • The Sitemap line points to WordPress’s built-in sitemap.

    Notice what’s not here. You’ll sometimes find old tutorials telling you to block /wp-content/ or /wp-includes/. Don’t. Modern Google needs to fetch your CSS and JavaScript from those folders to render and understand your pages. Blocking them can actively hurt your rankings.

    Shopify robots.txt examples

    Shopify generates robots.txt automatically. Keep the platform defaults unless you have identified a specific crawling problem. If you customize robots.txt.liquid, preserve the default groups and add the narrowest necessary change using Shopify’s current documentation. A fragment copied without its surrounding Liquid loop may not work. Preview the rendered public robots.txt and test product, collection, asset and checkout URLs before relying on the change.

    WooCommerce robots.txt examples

    WooCommerce runs on top of WordPress, so you get full control again — and a store adds a few URLs worth managing. Cart, checkout, and account pages hold nothing a search engine needs to index, and blocking them keeps crawlers on your products and categories:

    User-agent: *
    Disallow: /wp-admin/
    Allow: /wp-admin/admin-ajax.php
    Disallow: /cart/
    Disallow: /checkout/
    Disallow: /my-account/
    Disallow: /*add-to-cart=*
    Disallow: /?orderby=
    Disallow: /?filter_*
    
    Sitemap: https://yourstore.com/wp-sitemap.xml

    The two lines to pay attention to are the parameter blocks. /*add-to-cart=* stops crawlers from following those “add to cart” action links, and /?orderby= and /?filter_* keep them out of the endless sorted-and-filtered variations of your shop pages. Those parameter URLs can multiply into thousands of near-identical pages — exactly the kind of thing that drains crawl budget on a busy store.

    One caution specific to stores: never block /product/ or your shop and category pages. It sounds obvious written down, but it’s a mistake I’ve seen happen when someone copies an overly aggressive rule set from a forum.

    Common mistakes and how to avoid them

    Most robots.txt disasters come from a small handful of mistakes. Here are the ones worth burning into memory.

    1. Accidentally blocking the whole site

    The single most damaging line in existence:

    User-agent: *
    Disallow: /

    That forward slash means “the root and everything under it.” Do not leave this rule on a public site you want crawled. For private staging environments, use authentication; robots.txt is not access control. If your traffic ever falls off a cliff for no obvious reason, this is the first thing to check.

    2. Using robots.txt to hide a page from search results

    This is the most common misconception in all of SEO. Blocking a URL in robots.txt stops crawling, but it does not guarantee the page stays out of Google’s index. If other sites link to that URL, Google can still list it in results — just without a description, showing “No information is available for this page.” To truly keep a page out of search, use a noindex meta robots tag and allow crawling so Google can see the tag. More on that difference below.

    3. Blocking CSS and JavaScript

    Google renders pages like a browser does. If you block the resources it needs to render — stylesheets, scripts, fonts — it sees a broken version of your page and may judge it poorly. Let crawlers reach your assets.

    4. Getting case wrong

    Paths are case-sensitive. Disallow: /Blog/ will not block /blog/. Match your real URLs exactly.

    5. Forgetting the file after a site migration

    When you move from staging to production, the staging robots.txt often comes along for the ride, complete with its Disallow: /. Migration checklists exist for a reason — put “review robots.txt” near the top of yours.

    How to test a robots.txt file

    1. Save a baseline and choose test URLs

    Copy the current file before editing. List URLs that must stay crawlable: the homepage, a recent article, a category, an image, a stylesheet and a script. Add examples of the paths you intend to block. Include both trailing-slash and parameter variants where they exist.

    2. Change one rule and check its scope

    Use the robots.txt generator and URL tester to create or inspect the full rule set. Test the relevant user agent against both your allowed and blocked URL samples. Check custom user-agent groups separately, rather than assuming the wildcard group covers them.

    3. Publish at the correct origin

    Serve the file at /robots.txt on the correct scheme, hostname and port. A subdomain is a separate origin. Verify the response is the intended plain text, not a login page, challenge page, HTML error or stale cached file. For WordPress, follow the WordPress robots.txt setup and verification steps.

    4. Verify the live file and Google’s fetched version

    Repeat the same URL tests against the published text. In Search Console, review the robots.txt report and inspect an important URL. Distinguish the last indexed result from a live test. If a change should restore crawling, watch for a subsequent fetch; publishing does not instantly update Google’s cached version or guarantee indexing.

    5. Keep a rollback copy

    If a new rule blocks a required page or resource, restore the previous file and recheck the public response. Record the rule, publication time and affected URLs so later traffic changes can be investigated against evidence.

    Troubleshooting blocked crawling

    Robots rule or server response?

    A rule marked Disallow is different from a page returning 403, 429 or 5xx. Inspect the page response and robots.txt separately. A browser challenge does not prove that verified Googlebot gets the same challenge; ask hosting support to check logs for verified crawler traffic, URL, time and response status.

    Missing file or failed fetch?

    Google normally treats a robots.txt 404 as no robots restrictions. Server errors, network failures and rate limiting are different and can interrupt crawling; investigate them rather than assuming the file is simply absent. An HTML page returned with HTTP 200 is also not evidence that the intended rules were served.

    Crawlable but still not indexed?

    Check meta robots, X-Robots-Tag, canonical selection, internal links and content usefulness. Read robots.txt versus noindex before changing a crawl rule to solve an indexing problem. Use the Meta Tag Analyzer to inspect page-level directives, then check HTTP headers separately. Review how to create and submit an XML sitemap without expecting a sitemap submission to force indexing.

    Robots.txt vs meta robots

    This is the distinction that separates people who understand crawling from people who guess at it. Robots.txt and the meta robots tag sound similar and are constantly confused, but they do genuinely different jobs.

    Robots.txt Meta robots tag
    A file at your site root A tag inside a page’s HTML <head>
    Controls crawling (whether a bot fetches the URL) Controls indexing (whether a fetched page appears in results)
    Applies to files, folders, and URL patterns Applies to a single page
    Cannot reliably remove a page from the index Can remove a page from the index with noindex

    Here’s the practical takeaway: to keep a page out of Google, use noindex, and do not block it in robots.txt. Those two instructions fight each other — if you block crawling, Google never fetches the page, so it never sees the noindex tag telling it to drop the page. The meta tag lives in the page’s head like this:

    <meta name="robots" content="noindex, follow">

    Use robots.txt to manage crawling at scale (whole folders, parameters, budget). Use meta robots to control the indexing of specific pages. You can check what meta tags a page is actually serving with the ToolBrainy Meta Tag Analyzer.

    Robots.txt and XML sitemaps

    Robots.txt and your XML sitemap are two halves of the same conversation. Robots.txt tells crawlers where not to go; the sitemap tells them where you’d most like them to go. They work best together.

    Linking your sitemap from robots.txt is a small step with a real payoff — it helps search engines discover your important URLs without waiting to stumble across them through internal links:

    User-agent: *
    Disallow: /wp-admin/
    Allow: /wp-admin/admin-ajax.php
    
    Sitemap: https://yourdomain.com/sitemap.xml

    One rule that catches people out: never list a URL in your sitemap that you’ve blocked in robots.txt. You’d be sending a mixed signal — “please crawl this” and “don’t crawl this” about the same page. Keep the two files consistent. If you need to build or refresh your sitemap, the ToolBrainy Sitemap Generator produces a valid XML file you can point to from this exact directive.

    Crawl budget considerations

    “Crawl budget” is one of those phrases that sounds intimidating and turns out to be simple. It’s just the number of pages a search engine is willing to crawl on your site within a given timeframe, shaped by two things: how much crawling your server can handle without slowing down, and how much Google actually wants to crawl based on your site’s importance and freshness.

    For most small sites — a few hundred pages — crawl budget is a non-issue. Focus first on useful content, internal links, indexability, and server reliability; a small site is not guaranteed to have every URL crawled. It starts to matter when you have:

    • Tens of thousands of URLs or more.
    • Lots of auto-generated pages (faceted navigation, filters, calendars, internal search).
    • A large store with countless product-variant and sort-order URLs.

    On sites like those, robots.txt becomes a budget tool. By blocking the low-value, near-duplicate, and infinite-URL traps, you concentrate crawling on the pages that earn you traffic. Think of it as clearing the path so crawlers spend their limited time on your best work rather than wandering through filter combinations no human will ever search for.

    A few habits that protect crawl budget: block internal search results, block obvious parameter clutter, keep your sitemap clean and current, and fix or redirect long chains of broken and redirected URLs so crawlers aren’t chasing dead ends.

    Frequently asked questions

    Where should the robots.txt file be located?

    It must live in the root directory of your domain and be reachable at https://yourdomain.com/robots.txt. Crawlers only look in that exact spot — a robots.txt file placed in a subfolder is ignored. Each subdomain needs its own file too; blog.yourdomain.com uses its own robots.txt, separate from the main domain.

    Do I even need a robots.txt file?

    Not strictly. If you’re happy for search engines to crawl your entire site, you can skip it and nothing breaks. That said, having one is good practice — it lets you point to your sitemap, block low-value URLs, and gives you a place to make crawl decisions later. A simple, permissive file is better than none.

    Will robots.txt keep my page out of Google?

    No, not reliably. Blocking a URL stops crawling, but the page can still appear in search results if other sites link to it. To truly keep a page out of the index, use a noindex meta robots tag and allow crawling so Google can read that tag.

    How often do search engines check robots.txt?

    Google typically caches your robots.txt for up to 24 hours, so changes usually take effect within a day. If you’ve made an urgent fix, you can prompt a faster re-fetch through Google Search Console rather than waiting.

    Can I block AI crawlers like GPTBot in robots.txt?

    Yes. AI crawlers that respect the standard — such as GPTBot and ClaudeBot — read robots.txt like any other bot. Add a rule group naming the crawler and disallow what you want. Keep in mind this only works for bots that choose to obey; it isn’t an enforceable block.

    What happens if my robots.txt has a syntax error?

    Crawlers are fairly forgiving and will ignore lines they can’t parse, applying the rest. The danger is subtler: a malformed rule might silently fail to block what you intended, or an overly broad one might block more than you meant. That’s exactly why testing and validating before publishing is worth the two minutes.

    Bringing it all together

    Robots.txt rewards a little bit of care and punishes carelessness, which is why it’s worth understanding properly rather than copying a random file off a forum. Remember the essentials: it controls crawling, not indexing; an empty file or a robots.txt 404 generally places no robots exclusion restrictions on crawling; a lone Disallow: / can hide your whole site; and it should always be kept in sync with your XML sitemap.

    Start simple. Block the genuinely useless URLs — admin areas, internal search, cart and checkout on stores — point to your sitemap, and leave your real content and assets fully crawlable. Test the file, watch Search Console for a week, and adjust only when you have a specific reason to.

    Do that, and this tiny text file becomes exactly what it’s meant to be: a quiet, reliable doorman that sends crawlers straight to your best pages and keeps them out of the clutter. If you’d rather skip the hand-editing, the free Robots.txt Generator builds a valid file for you in seconds, and pairing it with the Sitemap Generator, Meta Tag Analyzer, and SERP Preview gives you a complete, no-signup technical-SEO toolkit to get the rest right too.

    Reference documentation

    Google robots.txt specification covers rule matching, response handling and caching. Check crawler-specific documentation before applying Google behaviour to another bot.

    Editorial note: Updated September 29, 2026 with AI assistance. Instructions were reviewed against the relevant tool implementation and documentation; examples are illustrative rather than claims of personal experience.

  • How I Stopped Reusing the Same Password Everywhere

    How I Stopped Reusing the Same Password Everywhere

    I used to have one password. Well, one password with a “2” stuck on the end whenever a site forced me to add a number. Banking, email, some forum I signed up for back in 2014, all the same thing. It worked fine right up until it very much didn’t, and cleaning up that mess is the whole reason I now care far too much about this topic.

    If your password situation looks anything like my old one, this is the post I wish someone had shoved in front of me years ago. No scolding. Just the stuff that actually helped.

    Reusing passwords is the real problem, not weak ones

    Here’s the part nobody explains properly. It’s not that some hacker is sitting in a dark room guessing your password one letter at a time. What usually happens is a company you once signed up for gets breached, and a giant list of emails and passwords ends up floating around online. If you used that same email-and-password combo on your bank, your email, and three other sites, nobody has to guess anything. They just try the same combo everywhere, automatically, on thousands of sites at once.

    It’s called credential stuffing. It’s boring, it’s cheap to run, and it works alarmingly often. So the single most useful move isn’t inventing one “unhackable” password. It’s making sure a leak in one place can’t quietly unlock everything else you own.

    Strong doesn’t have to mean complicated

    For years I assumed a good password had to look like P@ssw0rd!, a normal word with a couple of symbols jammed in. Turns out that’s close to the worst possible option. Those little letter-to-symbol swaps are the very first thing cracking software tries.

    Length beats cleverness, almost every time. A random string like 7hK$2mQp!vX9 is genuinely tough to crack, but so is a long passphrase like copper-lamp-tuesday-otter that you can actually keep in your head. Every extra character multiplies the number of guesses an attacker needs, which is why a 16-character password sits in a completely different league from an 8-character one, even a “complex” 8.

    Want proof? Paste a couple of your current passwords into a password strength checker and watch the estimate. The first time is usually a bit of a gut-punch.

    The lazy-but-safe system I landed on

    I am not a disciplined person. Any system that depends on me staying organized is doomed. So here’s the low-effort version that actually stuck:

    1. A unique password for every account that matters. Do your email and your bank first, because your email is the reset button for basically everything else you own.
    2. Stop inventing them yourself. When I need a new one, I open a password generator, grab something long and random, and never think about it again.
    3. Keep them in a password manager. The one built into your browser is fine to begin with. You end up remembering exactly one strong password, and the tool fills in the rest.
    4. Switch on two-factor wherever it’s offered. Even if a password does leak, that second step usually stops someone dead.

    That’s the whole thing. No spreadsheet, no sticky notes, no clever pattern based on the website’s name (attackers know that trick too, sorry).

    “But I’ll never remember them all”

    You won’t have to, because you’re not trying to. That’s the entire point of handing the memorizing job over to a manager. The one password you do need to remember, the master one, should be a long passphrase. Four or five random words strung together is easy to recall and genuinely painful to crack. Just don’t use a famous quote or a song lyric, since those get fed into cracking lists too.

    A few honest gotchas

    • Don’t email or text passwords to yourself. Those inboxes get breached as well, and now your password is sitting in two vulnerable places instead of one.
    • Watch for fake login pages. The strongest password on earth is useless the moment you type it into a convincing phishing site. Glance at the address bar before you type.
    • Don’t try to fix everything in one night. Change your email and bank passwords first, then do two or three a week. Attempt the whole lot in one sitting and you’ll burn out and quit halfway.

    If you only do one thing today

    Give your main email account its own long, unique password and turn on two-factor. Just that one account. It’s the master key to most of your digital life, so protecting it does more good than fixing ten smaller logins.

    When you’re ready, spin up a fresh one with our password generator, run it through the strength checker to see the difference for yourself, and stash it somewhere you’ll actually find it later.

    Future you, the one who never has to do a panicked 2am password reset from a hotel lobby, will thank you for it.

  • 5 Free Online Tools Every Student Should Bookmark

    5 Free Online Tools Every Student Should Bookmark

    Ask any student what actually eats their time near a deadline and it’s rarely the thinking. It’s the file that won’t upload, the essay that’s 200 words too long, the document that needs to be a PDF ten minutes before it’s due. None of that needs paid software. A handful of free, browser-based tools quietly handle the formatting chaos so you can focus on the work itself. Here are five worth bookmarking today, and exactly when to reach for each.

    1. Word Counter: stay inside the limit

    Almost every essay comes with a word range, and examiners notice when you’re wildly over or under. A word counter shows words, characters, sentences, and paragraphs instantly, so you can write freely and trim to target afterwards. Bonus tip: use the sentence count to catch run-on paragraphs before you submit.

    2. PDF Compressor: beat the upload limit

    Submission portals love to reject files that are “too large.” Instead of stressing, run your finished PDF through a PDF compressor to shrink it under the limit while keeping your text and diagrams sharp. If you also need to combine several documents into one submission, the PDF merge tool stitches them together first.

    3. Word to PDF: submit in the required format

    Most institutions want assignments as PDFs so formatting doesn’t shift between computers. Rather than hunting through menus, convert your document in seconds with a Word to PDF converter. Your headings, page breaks, and references stay exactly where you put them.

    4. Image to Text (OCR): pull notes off a photo

    Snapped a photo of the whiteboard or a textbook page? An image-to-text (OCR) tool extracts the words so you can search, quote, and paste them into your notes instead of retyping. It’s a genuine time-saver during revision season.

    5. Case Converter: fix formatting fast

    Pasted a title that came through in ALL CAPS, or need a heading in Title Case to match a style guide? A case converter flips text between uppercase, lowercase, sentence case, and title case in one click, no retyping, no fiddling.

    Why browser tools beat installing software

    For students, free web tools have three big advantages:

    • Nothing to install. They work on a library computer, a borrowed laptop, or your phone.
    • No cost and no account. Handy when you just need one quick job done before a deadline.
    • Privacy, when done right. Tools that process files in your browser keep your documents on your own device rather than uploading them.

    A quick assignment-day workflow

    1. Write your draft and check the length with the word counter.
    2. Tidy any messy headings with the case converter.
    3. Export to PDF with the Word-to-PDF converter.
    4. If it’s too big, compress it; if there are multiple files, merge them.
    5. Upload with time to spare.

    Student questions, quickly

    Are these tools really free?

    Yes, the tools linked here are free to use with no account required.

    Do I need to install anything?

    No. They all run in your web browser on any device, including phones and shared computers.

    Are my files safe?

    Tools that process files directly in the browser keep your documents on your device. Always check how a tool handles files before uploading anything sensitive.

    Can I use them on my phone?

    Yes. Because they’re browser-based, they work on mobile as well as desktop, useful for quick fixes on the go.

    Set yourself up for an easier semester

    Five bookmarks, one word counter, a PDF compressor, Word-to-PDF, OCR, and a case converter, cover the overwhelming majority of the small tasks that stand between you and a submitted assignment. Save them now, before the next deadline sneaks up. You can find the rest of the set on our homepage whenever a new one comes in handy.

  • Word Counter Tips for Better Essays and SEO

    Word Counter Tips for Better Essays and SEO

    “Counting words” sounds like the least interesting part of writing, right up until you’re 40 words over an essay limit at midnight, or watching a meta description get chopped off mid-sentence in Google’s results. That little number in the corner is doing more work than it gets credit for. Used well, it makes you write tighter, hit your limits, and edit with intent instead of guessing.

    Why word and character counts matter

    Different jobs have different limits, and hitting them is often part of the task itself:

    • Essays and assignments usually have a word range, and going too far over or under can cost marks.
    • Meta titles and descriptions get truncated in search results if they’re too long: roughly 60 characters for titles and 155–160 for descriptions.
    • Social posts have hard character caps.
    • Ads and headlines often specify exact character limits that a submission form will reject if exceeded.

    A quick way to check any of these is our free word counter, which shows words, characters, sentences, and paragraphs as you paste or type. For the character-limited jobs above, the character counter is the more precise companion.

    Tips for stronger essays

    1. Write long, then cut. It’s easier to trim a slightly over-length draft than to pad a thin one. Aim to overshoot by 10%, then edit down; the cutting itself improves clarity.
    2. Watch your paragraph length. If the counter shows only a handful of very long paragraphs, break them up. Shorter paragraphs are easier to read and to grade.
    3. Use the sentence count as a rhythm check. A wall of text with very few sentences usually means run-ons; lots of tiny sentences can feel choppy. Aim for variety.
    4. Respect the range, not just the maximum. A “1,500–2,000 word” essay that lands at 1,505 words can look rushed. Sitting comfortably inside the range signals a complete argument.

    Tips for SEO and web content

    Search engines don’t reward word count for its own sake; there’s no magic number that ranks. But length still matters indirectly:

    • Match the intent. A “what time is it in Tokyo” query needs a short answer; a “complete guide to sourdough” query expects depth. Let the topic set the length, not an arbitrary target.
    • Cover the topic thoroughly. Comprehensive pages tend to answer more related questions, which helps them rank for more searches. Word count is a by-product of covering the subject well, not the goal.
    • Keep titles and descriptions in range. Use the character counter to keep meta titles near 60 characters and descriptions near 155 so they don’t get cut off in results.
    • Don’t pad. Filler to “reach 2,000 words” hurts readability and can signal low quality. Every sentence should earn its place.

    A simple editing workflow

    Here’s a repeatable loop that uses counts to improve any piece:

    1. Draft freely without watching the count.
    2. Paste into the word counter to see where you stand versus your target.
    3. Cut anything that repeats a point you’ve already made.
    4. Check meta title/description lengths with the character counter.
    5. Re-read once for rhythm using the sentence count as a nudge.

    Word count questions, answered

    Does word count affect SEO rankings?

    Not directly. Google ranks relevance and quality, not length. Longer content often ranks well because it covers a topic more completely, but padding to hit a number doesn’t help.

    How long should a meta description be?

    Around 150–160 characters. Longer descriptions get truncated with an ellipsis in search results.

    What’s the ideal blog post length?

    Whatever fully answers the reader’s question. Many strong posts land between 800 and 1,500 words, but the topic should decide, not a quota.

    Do spaces count as characters?

    It depends on the limit you’re working to. A good character counter shows counts both with and without spaces so you can match the requirement exactly.

    Make the count work for you

    Treat the number as an instrument on the dashboard, not the destination. Overshoot then trim, keep your meta fields inside their limits, and let the subject, not a quota, decide how long a piece runs. Whenever you want a fast read on where you stand, the word counter and character counter are a click away.

  • How to Calculate Your BMI (and What It Actually Means)

    How to Calculate Your BMI (and What It Actually Means)

    Step on a scale at a doctor’s office and there’s a good chance a BMI number lands in your file within seconds. It’s fast, it’s free, and it needs only your height and weight, which is exactly why it’s everywhere. But plenty of people can recite their BMI without knowing what it’s actually measuring, or where it quietly falls apart. Here’s the honest version.

    What BMI is

    BMI is a simple ratio of your weight to your height. It was designed as a fast way to screen populations for weight categories that may be linked to health risks, not as a precise diagnosis of any individual’s health. Think of it as a first-glance indicator, like a thermometer reading: useful information, but not the whole picture.

    The formula

    The maths is straightforward:

    • Metric: BMI = weight (kg) ÷ height (m)²
      Example: 70 kg ÷ (1.75 m × 1.75 m) = 70 ÷ 3.0625 ≈ 22.9
    • Imperial: BMI = [weight (lb) ÷ height (in)²] × 703

    You don’t have to do this by hand: our free BMI calculator works it out instantly in either units and shows you which category the result falls into.

    What the ranges mean

    For most adults, the World Health Organization categories are:

    • Below 18.5: Underweight
    • 18.5 to 24.9: Healthy weight
    • 25.0 to 29.9: Overweight
    • 30.0 and above: Obesity

    These ranges are associated with different average risks for conditions such as heart disease and type 2 diabetes across large groups of people. They are a guide, not a verdict.

    The limitations you need to know

    This is where BMI is often misunderstood. Because it only uses height and weight, it can’t tell the difference between muscle and fat, or where fat is stored. That leads to some well-known blind spots:

    • Muscular people: athletes and regular strength trainers often score “overweight” despite very low body fat, because muscle is dense.
    • Older adults: may lose muscle and gain fat while their BMI stays the same, hiding a change in body composition.
    • Different body frames and ethnicities: health risks can appear at different BMI thresholds for different populations, which is why some health bodies use adjusted cut-offs.
    • Children and teens: use age- and sex-specific percentile charts, not the adult ranges above.

    Because of this, doctors look at BMI alongside other measures: waist circumference, blood pressure, blood sugar, activity levels, and family history, rather than on its own.

    How to use your BMI sensibly

    1. Treat it as a starting point. A number outside the healthy range is a prompt to look closer, not a diagnosis.
    2. Track the trend, not just one reading. A steady direction over months is more meaningful than a single figure.
    3. Pair it with a waist measurement. Waist size is a useful, simple companion because it hints at where fat is stored.
    4. Talk to a professional if your BMI or other signs concern you. They can interpret it in the context of your whole health.

    Common BMI questions

    Is BMI accurate?

    It’s accurate as a population screening tool, but limited for individuals because it ignores muscle, fat distribution, age, and frame. Use it as one input among several.

    What is a healthy BMI?

    For most adults, 18.5 to 24.9 is considered the healthy range, but context matters, especially for very muscular or older people.

    Does BMI work for athletes?

    Often not well. High muscle mass can push a very fit person into the “overweight” category despite low body fat.

    Should I use BMI for my child?

    Not with adult ranges. Children and teenagers are assessed using age- and sex-specific percentile charts instead.

    Reading your number well

    BMI is a flashlight, not an X-ray. It can point you toward a question worth asking, but it can’t answer it on its own. Know your figure, understand what it leaves out, and read it next to the other things your body is telling you. If you want that figure in a couple of seconds, our BMI calculator will do the arithmetic for you.

    This article is for general information only and is not medical advice. Consult a qualified healthcare professional about your individual health.

  • Understanding JWT Tokens: A Beginner’s Guide

    Understanding JWT Tokens: A Beginner’s Guide

    The first time I really looked at a JWT, I was staring at a login bug at 11 PM, copying a long, dot-riddled string out of a browser’s dev tools and wondering what on earth it said. If you’ve seen a value shaped like xxxxx.yyyyy.zzzzz in a cookie or an Authorization header and felt the same way, this is the explanation I wish I’d had that night.

    What a JWT is for

    A JWT is a compact, self-contained way to carry claims: pieces of information such as “this is user #4521” or “this token expires at 3 PM.” When you log in, the server hands you a token; your browser sends it back with each request, and the server can trust it without looking anything up in a database. That statelessness is what makes JWTs so popular for APIs.

    The three parts of a token

    Every JWT has three sections separated by dots. Each is Base64URL-encoded (not encrypted; more on that below):

    1. Header. Says what type of token it is and which signing algorithm was used (for example, HS256 or RS256).
    2. Payload. The actual claims: user ID, roles, issued-at time, and expiry. These are readable by anyone who has the token.
    3. Signature. A cryptographic stamp created from the header, payload, and a secret key. It lets the server verify the token hasn’t been tampered with.

    The most important thing to understand: it’s signed, not secret

    This trips up almost every beginner. The payload of a JWT is encoded, not encrypted. Anyone who intercepts the token can read its contents: the user ID, roles, and any other claims are all visible.

    What the signature guarantees is integrity: nobody can change the payload without the secret key, because doing so would break the signature. So the rule is simple: never put sensitive data (passwords, card numbers, secrets) inside a JWT payload. Treat it as public information that merely can’t be forged.

    How verification works

    When the server receives a token, it recomputes the signature from the header and payload using its secret key, then compares it to the signature in the token. If they match, the token is authentic and untampered. If they don’t, it’s rejected. The server also checks the expiry claim so old tokens stop working automatically.

    Inspecting a token safely

    When debugging authentication, you often need to peek inside a token to check its claims or expiry. You can decode the header and payload with our JWT decoder: paste the token and it splits and decodes the parts for you, right in your browser.

    Two safety notes when decoding tokens:

    • Use tools that decode locally. Because a token can be used to impersonate you until it expires, never paste a live production token into a random site that sends it to a server. A browser-based decoder that keeps the token on your device is far safer.
    • Decoding is not verifying. A decoder shows you what’s inside, but only the server with the secret key can prove a token is genuine.

    If you’re curious about the encoding underneath, each section is Base64URL, the same family covered in our guide to Base64 encoding.

    Common beginner mistakes

    • Storing secrets in the payload: remember, it’s readable by anyone.
    • Never setting an expiry: a token that lives forever is a security hole if it leaks.
    • Trusting a token without verifying the signature: always verify server-side.
    • Using a weak signing secret: a short, guessable secret undermines the whole system.

    Questions developers actually ask

    Is the data in a JWT encrypted?

    No. The header and payload are only encoded and can be read by anyone. The signature prevents tampering, not reading.

    Can a JWT be tampered with?

    Not without being detected. Changing any part invalidates the signature, so the server will reject it, provided the server actually verifies the signature.

    Where should I store a JWT in the browser?

    It’s a trade-off. HttpOnly cookies protect against cross-site scripting but need CSRF protection; local storage is simpler but exposed to scripts. Choose based on your app’s threat model.

    What does an expired token do?

    A well-built server checks the expiry claim and rejects tokens past their time, forcing a fresh login or token refresh.

    If you remember three things

    Keep secrets out of the payload, always set an expiry, and always verify the signature on the server. A JWT is just a signed note that says who you are and when it stops being valid, nothing more mysterious than that. Next time one lands you in a late-night debugging session, drop it into the JWT decoder and read exactly what it’s telling you.

  • What Is Base64 and When Should You Use It?

    What Is Base64 and When Should You Use It?

    Spend enough time near web development, email, or APIs and you’ll keep running into Base64: those long strings of what look like random letters and numbers, often with an = or two on the end. It looks like something you’re not supposed to read. It isn’t, and the idea behind it is refreshingly simple once someone spells it out.

    What Base64 actually is

    Base64 is a way of representing binary data (like an image, a PDF, or raw bytes) using only 64 “safe” text characters: A–Z, a–z, 0–9, and the symbols + and /. The = characters you sometimes see at the end are padding to keep the length consistent.

    The key thing to understand: Base64 is an encoding, not encryption. It doesn’t protect or hide your data; anyone can decode it instantly. Its only job is to convert data into a form that survives systems designed to handle plain text.

    Why it exists

    Many older but still-essential systems, email being the classic example, were built to transmit text, not arbitrary binary bytes. Send raw binary through them and certain byte values get mangled or interpreted as control characters, corrupting the data.

    Base64 solves this by translating binary into text that any text-based channel can carry safely. The trade-off is size: Base64 data is roughly 33% larger than the original binary, because it uses text characters to represent every few bytes.

    Where you’ll actually see it

    • Email attachments. Under the hood, that PDF you attached is Base64-encoded so it can travel through email servers intact.
    • Embedding images in HTML/CSS. A small icon can be embedded directly as a data: URI using Base64, saving an extra network request.
    • APIs and JSON. Since JSON is text, binary payloads (like a file upload or a small image) are often Base64-encoded to fit inside a JSON field.
    • Basic authentication headers. HTTP Basic Auth encodes username:password in Base64, which is exactly why Basic Auth must always be used over HTTPS, since Base64 offers no security at all.
    • Storing binary in text-only fields. Config files, tokens, and certificates are frequently Base64-encoded.

    When you should (and shouldn’t) use it

    Use Base64 when you need to move or store binary data through something that only accepts text, or when embedding a tiny asset inline is worth avoiding an extra request.

    Don’t use Base64 when:

    • You need security. It hides nothing. Use real encryption instead.
    • You’re embedding large images. The 33% size penalty and loss of browser caching usually make a normal image file the better choice.
    • Plain binary transfer is already supported; encoding then adds size for no benefit.

    Encoding and decoding it yourself

    You rarely need to do this by hand, but it’s handy when debugging. To quickly encode text or decode a mysterious-looking string, use our Base64 encoder and decoder: paste your value in, and it converts instantly in your browser.

    One related tip: if you’re inspecting a token that contains Base64 sections, such as a JSON Web Token, a dedicated JWT decoder will split and decode it more usefully than a plain Base64 tool.

    Base64, quick answers

    Is Base64 secure?

    No. It’s trivially reversible and provides zero protection. Never treat Base64 as a way to hide passwords or sensitive data.

    Why does Base64 make files bigger?

    It represents every 3 bytes of binary data with 4 text characters, which adds about one third to the size.

    What do the = signs mean?

    They’re padding, added so the encoded output length is always a multiple of four characters. They carry no data themselves.

    Can I decode any Base64 string?

    If it’s valid Base64, yes, but the result only makes sense if you know what the original data was (text, an image, etc.).

    The one-sentence version

    Think of Base64 as a translator rather than a lock: it makes binary data safe to travel through text-only systems, and it charges you about a third more size for the trip. Reach for it when you need compatibility, never when you need confidentiality. Got a string to encode or decode this second? The Base64 tool is right here.