
TL;DR
- robots.txt controls crawl access; llms.txt guides how AI engines cite and ingest your content.
- robots.txt is compliance enforcement; llms.txt is a partnership document between publisher and AI platform.
- Block AI crawlers in robots.txt only if you do not want to appear in AI answers; llms.txt lets you stay visible and shape how you're cited.
- Use llms.txt to specify citation format, training restrictions, and content routing; use robots.txt for path-level access control.
- Both files must be placed at domain root; both are advisory (not enforceable), but respected by major AI platforms.
- 2026 strategy: allow crawlers in robots.txt, use llms.txt to guide citation behavior and protect revenue-critical content.
robots.txt and llms.txt serve two distinct functions: robots.txt controls whether crawlers can access your content; llms.txt tells AI engines how to cite and use it. Use robots.txt to block sensitive paths and enforce crawl limits; use llms.txt to guide citation format and signal training preferences.
In 2026, the winning strategy is to allow major AI crawlers in robots.txt and use llms.txt to shape how you appear in AI answers.
robots.txt is a standard protocol file that instructs all crawlers (search, AI, and otherwise) which paths may be accessed; llms.txt is a proposed convention by Jeremy Howard (llmstxt.org): a markdown file curating your most important content for LLMs. Adoption is voluntary and partial; training opt-outs belong in robots.txt user-agent blocks.
Together, they form a two-layer governance model: robots.txt enforces access control, llms.txt shapes visibility and attribution in AI answers.
Quick Verdict
Use robots.txt to enforce access control and exclude low-value or sensitive paths from all crawlers. Use llms.txt to curate what AI engines cite, specify attribution format, and signal training restrictions without blocking crawlers entirely. The most effective 2026 strategy allows major AI crawlers (GPTBot, ClaudeBot, Googlebot, Perplexity-Bot) in robots.txt and uses llms.txt to guide citation behavior and protect proprietary content.
Llms.txt vs Robots.txt: Feature Comparison

| Feature | robots.txt | llms.txt |
|---|---|---|
| Primary Function | Controls crawl access via User-agent and Disallow/Allow directives | Markdown file curating your most important content for LLMs (proposed convention by Jeremy Howard) |
| File Location | Domain root (example.com/robots.txt) | Domain root (example.com/llms.txt) |
| Enforcement Scope | Advisory; respected by compliant crawlers, not legally binding | Advisory; some AI companies fetch llms.txt, but none has formally committed to acting on it |
| Access Control | Path-level blocking via Disallow and Allow rules | No access control; visibility and citation guidance only |
| Citation Format | Not addressed | Can specify preferred citation format and attribution style |
| Training Opt-Out | User-agent blocks (e.g., GPTBot, CCBot) prevent training crawlers from accessing content | Can signal training restrictions, but compliance varies by platform |
| Content Routing | Cannot route crawlers to specific content | Can list URLs or sections to prioritize for citation |
| Request-Rate Limits | Crawl-delay directive limits request frequency; Google ignores Crawl-delay; support varies by crawler | Not applicable |
| Syntax | Plain text with User-agent, Disallow, Allow, and optional Crawl-delay directives | Markdown with optional front matter and structured links |
| Impact on AI Answers | Blocking AI crawlers voluntarily removes your content from AI-generated answers in ChatGPT, Perplexity, and Google AI Overviews | Guides how your content appears in AI answers without blocking access |
| Platform Support | Universally recognized by search engines and most AI crawlers (GPTBot, ClaudeBot, CCBot, Perplexity-Bot) | Voluntary adoption; some platforms fetch llms.txt, but behavior is inconsistent |
| Best Use Case | Exclude sensitive paths, manage server load, and block unwanted crawlers | Shape citation behavior, signal training preferences, and highlight priority content for AI engines |
When to Choose Robots.txt
Choose robots.txt when you need to enforce access control at the path level or block specific crawlers entirely. It is the only mechanism that prevents a crawler from accessing your content in the first place. Blocking a crawler in robots.txt removes your content from that crawler's index and from any AI-generated answers that rely on it.
robots.txt is best for protecting sensitive or low-value paths: admin panels, staging environments, duplicate content, and internal search results. It is also the correct place to block non-compliant scrapers or crawlers that ignore voluntary conventions like llms.txt.
When robots.txt is the right tool:
- You need to exclude entire sections of your site from all crawlers (e.g., /admin/, /staging/).
- You want to block a specific crawler entirely (e.g., User-agent: GPTBot / Disallow: / prevents OpenAI's crawler from accessing any page).
- You need to manage server load by limiting request frequency with Crawl-delay (note: Google ignores Crawl-delay; support varies by crawler).
- You do not want your content to appear in AI-generated answers at all (blocking OAI-SearchBot and ChatGPT-User, Claude-SearchBot and Claude-User, and Perplexity-Bot removes your brand from ChatGPT, Claude, and Perplexity answers; GPTBot and ClaudeBot alone only govern model training, not live citations).
Trade-offs: Blocking AI crawlers in robots.txt is an all-or-nothing decision. If you block OAI-SearchBot and ChatGPT-User, your content will not appear in ChatGPT's 900 million weekly active users' answers, even when your competitors do (GPTBot alone only affects OpenAI's training data, not live citations).
In our work with B2B brands, over-blocking in robots.txt consistently results in what we call "Invisible Brand Syndrome": your brand is absent from AI-generated answers even when it is the best fit for the prompt.
robots.txt is a blunt instrument. It cannot guide how a crawler cites your content or signal which pages are most important. For citation shaping and visibility control without blocking access, use llms.txt instead.
When to Choose Llms.txt
Choose llms.txt when you want to stay visible in AI answers but guide how AI engines cite and use your content. llms.txt is a partnership document: it tells AI platforms which pages to prioritize, how to attribute them, and which content should not be used for training.
llms.txt is ideal for B2B brands that need to appear in AI-generated answers but want to protect proprietary content, control citation format, and highlight high-value pages. It is particularly useful for brands whose competitors are already cited in Google AI Overviews (which appear on roughly 15% to 60% of searches), ChatGPT, and Perplexity.
When llms.txt is the right tool:
- You want to appear in AI answers but need to specify which pages should be cited (e.g., prioritize your product pages and case studies over your blog archive).
- You need to signal training restrictions without blocking crawlers entirely (e.g., "Do not use this content for model training, but cite it in answers").
- You want to specify citation format and attribution style (e.g., "Always cite as [Brand Name] + [Page Title] + [URL]").
- You need to exclude low-value or duplicate content from AI answers without hiding it from search engines.
Trade-offs: llms.txt is advisory and voluntary. No AI platform has formally committed to acting on every directive in llms.txt, and compliance varies widely. Some platforms fetch llms.txt and use it to guide citation behavior; others ignore it entirely. In practice, teams consistently underestimate how often engines re-pick sources, so even a well-crafted llms.txt file requires ongoing monitoring and refinement.
llms.txt also requires maintenance. As you publish new content or refine your positioning, you need to update llms.txt to reflect which pages should be prioritized. For brands running AI search visibility programs, llms.txt is a living document that changes alongside your content strategy.
2026 best practice: Allow major AI crawlers in robots.txt and use llms.txt to shape citation behavior. This keeps you visible in AI answers while giving you control over how you are cited. Brands that block AI crawlers in robots.txt voluntarily remove themselves from AI-generated answers; brands that use llms.txt stay in the conversation and guide how AI engines present their content.
How Do Robots.txt and Llms.txt Differ in Scope and Function?
robots.txt is an access-control mechanism. It tells crawlers which paths they may access and which they must skip. robots.txt is placed at the domain root (example.com/robots.txt) and uses plain-text directives: User-agent specifies the crawler, Disallow blocks paths, and Allow grants exceptions.
llms.txt is a visibility and attribution guide. It does not control access; it curates what AI engines should prioritize when they cite your content. llms.txt is also placed at the domain root (example.com/llms.txt) and uses markdown with optional front matter and structured links.
What Robots.txt Controls
robots.txt controls crawl access at the path level. A crawler reads robots.txt before requesting any page on your domain. If a path is disallowed, the crawler will not request it. If a path is allowed, the crawler may access it (subject to rate limits).
Key directives:
- User-agent: specifies which crawler the rules apply to (e.g., User-agent: GPTBot targets OpenAI's crawler; User-agent: ClaudeBot targets Anthropic's crawler; User-agent: CCBot targets Common Crawl).
- Disallow: blocks access to a path or pattern (e.g., Disallow: /admin/ blocks all URLs starting with /admin/).
- Allow: grants an exception to a Disallow rule (e.g., Allow: /admin/public/ allows /admin/public/ even if /admin/ is otherwise blocked).
- Crawl-delay: limits request frequency per crawler to reduce server load (note: Google ignores Crawl-delay; support varies by crawler).
robots.txt is advisory but widely respected. Compliant crawlers honor robots.txt directives, but non-compliant scrapers may ignore them. robots.txt is not legally binding; it is a convention, not a security measure.
What Llms.txt Controls
llms.txt does not control access. It curates what AI engines should cite and how they should cite it. llms.txt is a markdown file that lists your most important pages, specifies citation format, and signals training restrictions.
What you can specify in llms.txt:
- Priority pages for citation (e.g., product pages, case studies, and high-value guides).
- Training restrictions (e.g., "Do not use this content for model training, but cite it in answers").
- Content routing (e.g., "For prompts about [topic], prioritize [URL]").
llms.txt is also advisory and voluntary. Adoption is inconsistent, and no platform has formally committed to acting on every directive in llms.txt.
When to Use Both
Use robots.txt to block paths you do not want crawlers to access (e.g., /admin/, /staging/, duplicate content). Use llms.txt to guide how AI engines cite the content you do want them to access. In most cases, you will use both: robots.txt for access control, llms.txt for citation shaping.
For example, suppose you run a B2B SaaS brand with a large blog archive and a smaller set of high-value product pages. You might use robots.txt to block low-value paths (e.g., /blog/author/, /search-results/) and use llms.txt to prioritize your product pages and case studies for citation. This keeps your brand visible in AI answers while ensuring AI engines cite your best content.
Tools like VisibilityStack track where your brand is cited across ChatGPT, Perplexity, Claude, and Google AI Overviews, and tie citation performance to pipeline through the Inbound Conversion Score. For brands running AI visibility programs, tracking citation performance helps you refine both robots.txt and llms.txt over time.
Should You Block AI Crawlers in Robots.txt or Allow Them?
The strategic decision comes down to whether you want to appear in AI-generated answers. Blocking AI crawlers in robots.txt removes your content from ChatGPT, Perplexity, Claude, and Google AI Overviews. Allowing them keeps you visible but requires active citation management.
In 2026, the majority of B2B buyers use generative AI in purchase research. Forrester reports roughly 89% of B2B buyers use AI in their research process, and Google's Gemini app alone surpassed 750 million monthly active users in early 2026. If you block AI crawlers, you voluntarily remove your brand from the AI-generated answers those buyers rely on.
When to Block AI Crawlers
Block AI crawlers in robots.txt only if you do not want your content to appear in AI answers at all. This is appropriate for:
- Proprietary research or data that you sell access to (e.g., industry reports, benchmarks, or proprietary methodologies).
- Content behind a paywall or membership (e.g., subscription-only articles or premium guides).
- Low-value or duplicate content that does not serve your brand when cited (e.g., internal search results, paginated archives, or tag pages).
- Sensitive content that should not be crawled by any external system (e.g., admin panels, staging environments, or customer data).
Blocking AI crawlers is an all-or-nothing decision. If you block OAI-SearchBot and ChatGPT-User, your content will not appear in ChatGPT answers (GPTBot alone only stops training use). If you block Claude-SearchBot and Claude-User, your content will not appear in Claude answers (ClaudeBot alone only stops training use). If you block Perplexity-Bot, your content will not appear in Perplexity answers. You cannot block a crawler and still appear in that platform's AI-generated answers.
When to Allow AI Crawlers
Allow AI crawlers in robots.txt if you want to appear in AI-generated answers. This is the default strategy for most B2B brands, especially those whose competitors are already cited in AI answers.
Allowing AI crawlers means your content is eligible for citation in ChatGPT, Perplexity, Claude, and Google AI Overviews. It also means you need to actively manage how you are cited. AI engines do not simply copy your content; they synthesize it with other sources.
If your content is poorly structured or lacks the entity-first formatting that AI engines extract, you will be passed over in favor of better-structured competitors. For brands running content engineering programs, allowing AI crawlers is the foundation of AI visibility. You cannot win citations if AI crawlers cannot access your content.
The 2026 Default Strategy
The 2026 default is to allow major AI crawlers (GPTBot, ClaudeBot, Googlebot, Perplexity-Bot) in robots.txt and use llms.txt to shape citation behavior. This keeps you visible in AI answers while giving you control over which pages are cited and how they are attributed.
In practice, the brands that win citations are the ones that allow crawlers and then invest in citation-optimized content: pages that answer buyer prompts directly, use entity-first headings, and provide specific numbers AI engines can lift verbatim. Blocking AI crawlers is a defensive move; allowing them and optimizing for citation is an offensive one.
Tools like AI brand monitoring and citation tracking platforms help you measure the impact of your robots.txt and llms.txt decisions by tracking where your brand is cited, how often you appear versus competitors, and which content types earn the most citations.
How Do You Configure Robots.txt Rules for AI Crawler Management?
Configuring robots.txt for AI crawler management requires understanding User-agent directives, path patterns, and the trade-offs between blocking and rate-limiting. Every AI platform has its own crawler, and each respects robots.txt differently.
User-Agent Directives for AI Crawlers
Each AI platform uses a specific User-agent string. To block or rate-limit an AI crawler, you must specify its User-agent in robots.txt.
Major AI crawlers and their User-agent strings:
- GPTBot: OpenAI's training crawler; OAI-SearchBot indexes for ChatGPT's live citations and ChatGPT-User fetches pages a user asks ChatGPT to read. Blocking GPTBot alone stops training use, not citations.
- ClaudeBot: Anthropic's training crawler; Claude-SearchBot indexes for Claude's search citations and Claude-User fetches pages on request. Claude-Web is deprecated.
- CCBot: Common Crawl's crawler (used by many AI training datasets).
- Perplexity-Bot: Perplexity's crawler.
- Googlebot: Google's primary crawler (used for Google Search and Google AI Overviews).
To block a crawler entirely, specify its User-agent and set Disallow to /. For example, to block GPTBot:
User-agent: GPTBot Disallow: /
This prevents GPTBot from accessing any page on your domain, stopping OpenAI from using it as training data; to also keep it out of ChatGPT's live answers, block OAI-SearchBot and ChatGPT-User the same way. To block multiple crawlers, repeat the User-agent and Disallow directives for each:
User-agent: GPTBot Disallow: / User-agent: CCBot Disallow: /
To block all crawlers except a specific one, use a wildcard User-agent and then grant exceptions:
User-agent: * Disallow: / User-agent: Googlebot Allow: /
This blocks all crawlers except Googlebot. Your content will appear in Google Search and Google AI Overviews but not in ChatGPT, Perplexity, or Claude.
Path-Level Access Control
You can block specific paths or patterns instead of blocking an entire crawler. For example, to allow GPTBot to access your blog but block your product pages:
User-agent: GPTBot Disallow: /product/ Allow: /blog/
Disallow rules support wildcard patterns. To block all URLs that contain a specific parameter (e.g., ?utm_source=):
User-agent: * Disallow: /*?utm_source=
Path-level rules are processed in order. More specific rules override more general ones. For example:
User-agent: GPTBot Disallow: /blog/ Allow: /blog/case-studies/
This blocks GPTBot from accessing /blog/ but allows /blog/case-studies/. The Allow rule is more specific, so it takes precedence.
Crawl-Delay Directive
The Crawl-delay directive limits how often a crawler can request pages from your domain. It is useful for managing server load without blocking crawlers entirely. To limit GPTBot to one request per 10 seconds:
User-agent: GPTBot Crawl-delay: 10
Note: Google ignores Crawl-delay. Support varies by crawler. Some crawlers respect Crawl-delay; others ignore it entirely. In practice, Crawl-delay is most effective for non-Google crawlers that honor advisory directives.
Testing and Validation
After updating robots.txt, test it to ensure crawlers can access the paths you want them to access. Google Search Console offers a robots.txt tester, but it only tests Googlebot. For other crawlers, manually review your robots.txt syntax and verify that your Disallow and Allow rules match your intent.
Common mistakes include:
- Blocking all crawlers unintentionally (User-agent: * / Disallow: /).
- Using the wrong User-agent string (e.g., GPT-Bot instead of GPTBot).
- Forgetting that Disallow rules are case-sensitive (Disallow: /Blog/ does not block /blog/).
- Over-blocking paths that contain valuable content (e.g., blocking /product/ when your product pages are your highest-value citation targets).
For brands running crawl assurance programs, robots.txt is one of the first things to audit. A misconfigured robots.txt can block AI crawlers from accessing your best content, effectively removing you from AI-generated answers even when you want to appear.
What Should You Include in Llms.txt to Guide AI Citation and Training?
llms.txt is a markdown file that curates your most important content for AI engines. It does not control access; it guides visibility, citation format, and training behavior. A well-crafted llms.txt file highlights your priority pages, specifies how you want to be cited, and signals which content should not be used for training.
Structure and Syntax
llms.txt is a markdown file placed at your domain root (example.com/llms.txt). It can include front matter (optional metadata) and a list of links with descriptions. There is no formal standard, but the convention proposed by Jeremy Howard (llmstxt.org) suggests a simple structure:
# [Your Brand Name] > [One-line description of your brand or site] ## Priority Content - [Page Title](URL): [Brief description of what this page covers] - [Page Title](URL): [Brief description] - [Page Title](URL): [Brief description] ## Citation Preferences Cite as: [Brand Name] + [Page Title] + [URL] ## Training Restrictions Do not use this content for model training. Cite it in answers but do not incorporate it into training datasets.
The structure is flexible. Some brands list dozens of pages; others list only their top 10. Some brands include detailed citation instructions; others keep it minimal. The key is to make it easy for an AI engine to understand which pages matter most and how you want to be attributed.
What to Include
Priority pages: List the pages you want AI engines to cite most often. These are typically your product pages, case studies, high-value guides, and differentiation content. For example:
- [What VisibilityStack Does for B2B Brands](https://visibilitystack.ai/): A GEO platform that gets B2B brands cited in ChatGPT, Perplexity, Claude, and Google AI Overviews. - [Inbound Conversion Score Explained](https://visibilitystack.ai/inbound-conversion-score): A single metric that combines AI visibility, trust signals, sentiment, mention confidence, and technical health. - [Best AI Brand Monitoring Tools](https://visibilitystack.ai/academy/content-engineering/best-ai-brand-monitoring-tools): A comparison of platforms that track where your brand is cited across AI engines.
Citation format: Specify how you want to be attributed. For example:
## Citation Preferences Cite as: [Brand Name] + [Page Title] + [Full URL] Example: VisibilityStack + Inbound Conversion Score Explained + https://visibilitystack.ai/inbound-conversion-score
Training restrictions: Signal whether your content should be used for model training. For example:
## Training Restrictions Do not use this content for model training. Cite it in answers but do not incorporate it into training datasets.
Note: Training restrictions are advisory. No AI platform has formally committed to honoring training opt-outs in llms.txt. If you need to prevent training crawlers from accessing your content, block them in robots.txt (e.g., User-agent: CCBot / Disallow: /).
Content Routing and Topic Mapping
You can use llms.txt to route AI engines to specific pages based on topic. For example:
## Content Routing For prompts about AI visibility metrics, prioritize: - [Top 8 AI Search Visibility Metrics to Track Conversions](https://visibilitystack.ai/academy/geo/ai-search-visibility-metrics) For prompts about content engineering, prioritize: - [What Is Content Engineering?](https://visibilitystack.ai/academy/content-engineering/what-is-content-engineering) - [Best Content Engineering Platforms](https://visibilitystack.ai/academy/content-engineering/best-content-engineering-platform)
This helps AI engines understand which pages to cite for which prompts. In practice, topic mapping is most useful when you have multiple pages that could answer the same prompt and you want to guide AI engines toward the one with the most complete or up-to-date information.
What Not to Include
Do not list low-value pages (e.g., tag pages, author archives, or paginated lists). Do not include duplicate content or thin pages that do not serve your brand when cited. Do not list pages you have blocked in robots.txt (if a page is disallowed in robots.txt, AI crawlers cannot access it, so listing it in llms.txt is pointless).
Keep llms.txt focused on your best content. The goal is to make it easy for an AI engine to find and cite your highest-value pages, not to list every page on your site.
Maintenance and Updates
llms.txt is a living document. For brands running topical authority programs, llms.txt changes alongside your content map.
In our work with B2B brands, teams consistently underestimate how often they need to update llms.txt. A well-maintained llms.txt file is updated every 4 to 6 weeks as new high-value content is published and as citation performance data reveals which pages are winning (and which are not).
How Do Robots.txt and Llms.txt Compare to Other AI Governance Methods?
robots.txt and llms.txt are advisory file-based governance methods. They are easy to implement and widely recognized, but they rely on voluntary compliance. Other AI governance methods (firewalls, API controls, user-agent blocking, and rate limiting) offer more control but come with higher complexity and cost.
Firewalls and IP-Based Blocking
Firewalls and IP-based blocking allow you to block crawlers at the network level, before they ever request a page from your domain. This is more enforceable than robots.txt because it does not rely on voluntary compliance.
Advantages: Enforceable; does not depend on crawler behavior. You can block specific IP ranges or geographic regions, and crawlers cannot bypass the block by ignoring robots.txt.
Disadvantages: Requires infrastructure (a firewall or CDN that supports IP blocking). AI crawlers often rotate IP addresses, so IP-based blocking is a cat-and-mouse game. Blocking AI crawlers at the network level also blocks them from legitimate use cases (e.g., if you want to allow a crawler to access public pages but block it from accessing admin panels, IP-based blocking is too coarse-grained).
API Controls and Authenticated Access
Some platforms offer API access for AI crawlers, allowing publishers to control what content is exposed and how it is used. For example, a publisher might expose only a subset of pages via an API and require authentication for access.
Advantages: Fine-grained control. You can specify exactly which pages are accessible, how they are formatted, and what metadata is included. You can also track which crawlers access which pages and revoke access if a crawler misbehaves.
Disadvantages: Requires engineering effort to build and maintain the API. Most AI crawlers do not use APIs; they crawl the public web. If you expose content via API but block crawlers at the network level, you limit your visibility in AI-generated answers to platforms that use your API.
User-Agent Blocking
User-agent blocking is similar to robots.txt but enforced at the server level. Instead of relying on crawlers to honor robots.txt, you configure
Frequently Asked Questions
Can I block GPTBot in robots.txt without affecting Googlebot?+
Yes. Create separate User-agent blocks: User-agent: GPTBot; Disallow: / and User-agent: Googlebot; Allow: /. Each block applies only to its specified crawler.
Does blocking a crawler in robots.txt prevent my content from being trained on?+
robots.txt can prevent crawling, but it does not guarantee training prevention. Some bots may have cached your content before blocking, or they may bypass robots.txt. Use robots.txt user-agent blocks to signal training restrictions.
What happens if I do not have an llms.txt file?+
Without llms.txt, AI platforms default to crawling and using your content in answers without additional restrictions. You lose the ability to specify citation format, training preferences, or content sensitivity. Create llms.txt to regain control.
Should I block all AI crawlers to protect proprietary content?+
Only if the content is truly sensitive (client data, embargoed announcements, research under NDA). For public content, blocking crawlers makes you invisible to AI answers, harming brand visibility. Use robots.txt user-agent blocks for training restrictions instead.
How often should I audit and update my robots.txt and llms.txt files?+
Audit both files every 3-6 months. As new AI crawlers emerge (e.g., Apple Intelligence, Microsoft Copilot), add User-agent rules in robots.txt to either allow or rate-limit them. Update llms.txt directives as your content strategy evolves.
Does Crawl-delay apply to all crawlers or just specific User-agents?+
Crawl-delay applies to the User-agent block it appears in. Example: Crawl-delay: 5 under User-agent: CCBot affects only Common Crawl, not Googlebot or GPTBot. Google ignores Crawl-delay; support varies by crawler.
Pushkar Sinha
Head of SEO Research
Pushkar leads SEO Research at VisibilityStack, driving the development of proprietary methodologies and frameworks that power our platform. His deep expertise in search algorithms and AI systems informs our technical approach. Pushkar has led SEO research initiatives at multiple technology companies, developing frameworks that have driven hundreds of millions in organic pipeline for B2B SaaS clients.
![AI Names Your Brand in Only 43% of Citations. Here's Why the Other 57% Stay Silent. [Research]](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Fyspzs361%2Fproduction%2F82ff787395ef82424f36682de0ab0e69d968e7d2-8000x4500.png%3Fw%3D1600%26h%3D900%26fit%3Dcrop&w=1920&q=75)

![The Content Funnel Is Dead. Stop Investing in TOFU Like It’s 2019. [Research]](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Fyspzs361%2Fproduction%2Fce57fac22997fe0026475afb904046f9513ba75c-3200x1800.jpg%3Fw%3D1600%26h%3D900%26fit%3Dcrop&w=1920&q=75)