You have the Claude Chrome extension installed, the toolbar icon shows green “connected,” and “Use current page” is checked in the chat — but Claude responds with “I don’t see any page content” or summarizes a totally different tab. This is the classic Chrome Connector trifecta: site permission, page render type, or active-tab detection.
Under the hood, the connector calls chrome.tabs.query({ active: true }) to grab the current tab’s URL, then injects a content script that reads document.body.innerText and ships it to Claude. If any link in that chain breaks, Claude receives an empty string.
Common causes
Ordered by hit rate, highest first.
1. Extension lacks “read this site” permission for the current domain
Chrome’s default extension permission model is “on click” — until you explicitly grant the site, the content script never injects. The extension shows as connected, but it has no DOM access.
How to spot it: Right-click the extension icon and look at the “This can read and change site data” row. If it says “When you click the extension” and the current domain isn’t whitelisted, this is it.
2. The page is SPA / Canvas / PDF with no readable DOM text
Notion docs, Google Docs, Figma, Miro, in-browser PDF viewers — all render their main content in Canvas or dynamic iframes. document.body.innerText returns mostly empty or just nav chrome.
How to spot it: On the page, F12 → Console → document.body.innerText.length. If the number is < 200 but the page is full of text, this is your cause.
3. Multiple Claude tabs — wrong active tab grabbed
The connector targets “most-recently-focused non-Claude tab.” If you just came from another Claude tab, or a Claude popup grabbed focus, it might end up reading Claude’s own UI.
How to spot it: Ask Claude to begin its reply with “The current page title is…” and compare against your real tab title.
4. Content lives in a cross-origin iframe
YouTube comments, Medium embeds, Twitter embeds — main content is in a cross-origin iframe. Chrome’s same-origin policy blocks extensions from reading across origins, so you only get the outer shell.
How to spot it: F12 → Elements, check if the main content is wrapped in <iframe src="different-domain">.
5. Incognito / Guest mode has extensions disabled
By default extensions don’t run in Incognito. Looks fine (icon shows up), but the content script never injects.
How to spot it: chrome://extensions/ → Claude → Details → check “Allow in Incognito.”
6. Corporate / MDM policy blocks host_permissions
Enterprise Chrome configs may set ExtensionInstallBlocklist or host allowlists that silently strip the extension’s ability to read certain domains.
How to spot it: Visit chrome://policy/ and look for relevant entries.
Shortest path to fix
Step 1: Explicitly grant site permission
Right-click the extension icon → “This can read and change site data” → choose “On all sites” (easiest) or at least “On example.com.” Refresh the target page and retry in Claude.
If you don’t want full-web access, add domains one by one:
chrome://extensions/ → Claude → "Site access" → "On specific sites" → add domain
Step 2: Self-check whether the page is readable
Open F12 → Console and run:
console.log('text length:', document.body.innerText.length);
console.log('first 200 chars:', document.body.innerText.slice(0, 200));
If the output is way smaller than the visible page (just nav text), the content is Canvas or cross-origin iframe — don’t try to use the connector. Instead:
- PDF → download, then use “Upload file”
- Google Docs → Select-All + Copy, paste into chat
- Notion → “Export → Markdown,” then upload
Step 3: Close extra Claude tabs
Keep one Claude tab. Put the target page in another normal tab. Before asking, Cmd+Tab / Alt+Tab to the target tab to make sure it’s the “most recently focused non-Claude tab,” then switch back to Claude and ask.
Step 4: Pop cross-origin iframes out
If content lives in an iframe:
- Right-click the iframe → “This Frame” → “Open Frame in New Tab”
- Grant the extension permission in the new tab, then let Claude read it
Step 5: Enable in Incognito
chrome://extensions/ → Claude → Details → toggle “Allow in Incognito.” Also turn on “Allow access to file URLs” so it can read local HTML.
Step 6: Verify on a non-managed browser
If only your corporate Chrome fails, it’s almost certainly MDM. Install the extension on Brave / Arc / personal Chrome and reproduce. Once confirmed, file a ticket with IT to allowlist anthropic.com in ExtensionSettings.
Prevention
- Pre-grant permission to research domains you use often (GitHub, Stack Overflow, Notion, etc.) on first visit
- Use a single Claude tab per task; multi-task with different Chrome Profiles
- For PDF / Google Docs / Notion, prefer the upload or export path over the connector
- Toggle “Allow in Incognito” for Claude if you do research there
- On corporate machines, ask IT to allowlist anthropic.com in
ExtensionSettingspolicy
Related
- Claude connector permission denied
- Claude beginner guide
- Claude prompt best practices
- Claude Projects
Tags: #Claude #Debug #Troubleshooting