It starts innocently. You find a paragraph you want to quote, a definition you want to save, a recipe ingredient list you're about to Google. You drag your cursor to select it, press Ctrl+C, and then paste — nothing. Or worse, the site shows you a little popup: "Copying is not allowed."
The frustration is real, and it comes up constantly — on news sites, legal databases, recipe blogs with SEO-padding prose around a simple ingredient list, and academic platforms that restrict content even when you have legitimate access.
Here's the good news: copy restrictions in Chrome are almost always JavaScript-based, which means they're removable. Here are five methods that work across different types of restrictions.
How Sites Actually Block Copying
Understanding the mechanism makes the fixes easier to grasp.
JavaScript event blocking
The most common approach is blocking the copy event:
document.addEventListener('copy', function(e) {
e.preventDefault();
});
Some sites go further and also block selectstart (prevents text selection) and intercept keydown to catch Ctrl+C. These are all event listeners — meaning they can be cancelled or overridden with a counter-listener.
CSS-based selection prevention
The other common mechanism is CSS:
* {
user-select: none;
-webkit-user-select: none;
}
This prevents the browser from highlighting text at all, so you can't initiate a selection to copy. Unlike JavaScript blocks, this is a rendering property rather than an event — it requires a slightly different approach to override.
Method 1 — Browser Extension (Best for Ongoing Use)
A dedicated Chrome extension that removes copy restrictions is the cleanest long-term solution. These extensions inject scripts that strip copy-blocking event listeners before they fire, and they override the CSS user-select restriction at the same time.
For a full rundown of the best options, there are extensions specifically designed for text copying, and others that bundle this with right-click restoration. The right choice depends on what you're trying to do most often.
Once an extension is installed and active, text selection and copying just work — no per-site setup, no keyboard gymnastics.
Method 2 — Chrome DevTools Console
No extension needed. The DevTools console lets you run JavaScript directly in the context of the page, which means you can remove the event listeners yourself.
- Press
F12to open DevTools. - Go to the Console tab.
- Paste and run:
['copy', 'cut', 'keydown', 'keyup', 'mousedown', 'selectstart'].forEach(event => {
document.addEventListener(event, e => e.stopImmediatePropagation(), true);
});
document.querySelectorAll('*').forEach(el => {
el.style.userSelect = 'text';
el.style.webkitUserSelect = 'text';
});
This does two things: cancels the copy-blocking event listeners, and restores CSS text selection across every element on the page. After running this, text selection and Ctrl+C work normally until you refresh.
If you need to right-click and copy simultaneously, you can add 'contextmenu' to the events array in the first block above.
Method 3 — Print to PDF, Then Copy
This is the lowest-tech option and works on almost any site without any tools or skills.
- Press
Ctrl+P(orCmd+Pon Mac) to open the print dialog. - In the Destination dropdown, select Save as PDF.
- Print/save the document.
- Open the saved PDF in Chrome or any PDF viewer.
- Select and copy text normally from the PDF.
The print rendering is completely independent of the page's JavaScript. Once the text is in PDF form, the original site's restrictions have no effect.
The downside: formatting is unpredictable, especially on long-form content. And if the site only loads text dynamically (infinite scroll, for example), only what's rendered in the current viewport at print time will be captured.
Method 4 — View Page Source
If the text is in the HTML of the page (not loaded dynamically), you can copy it directly from the source:
- In the address bar, type
view-source:before the URL and press Enter. Example:view-source:https://example.com/article - Use
Ctrl+Fto find the passage you want. - Select and copy directly from the source view — no JavaScript runs here.
This is useful for articles that use a simple copy block but render their content in plain HTML. For heavily JavaScript-rendered pages (single-page apps, React-based sites), the source view may show mostly empty containers, and the actual content won't be there.
Method 5 — Use the Elements Panel Directly
For surgical precision — especially when you want the exact text of a specific element — the DevTools Elements panel is more reliable than the Console method.
- Open DevTools (
F12). - Click the element selector (the arrow icon in the top-left of DevTools).
- Click on the text you want to copy on the page.
- In the Elements panel, right-click the selected node.
- Choose Copy > Copy text content (or Copy outerHTML if you want the markup too).
This bypasses all event listeners and CSS restrictions entirely because you're operating inside DevTools, not in the page's JavaScript context.
What About Paywalled Content?
Copy restrictions and paywalls are two different problems — as are paste blocks in form fields, which require a separate fix entirely. If a site shows a blurred overlay or asks you to subscribe before the text renders, removing the copy restriction won't help — the text simply isn't there in the DOM yet (or is replaced with a teaser).
For researchers and students dealing with these restrictions regularly, specific tools designed for academic note-taking can make the workflow more efficient than working around each restriction manually.
It's also worth understanding why websites disable copy paste in the first place — the reasoning varies, and knowing it helps you judge whether a workaround is appropriate.
Frequently Asked Questions
Why can't I copy text from some websites?
Copy restrictions are applied through JavaScript event listeners that block the copy, selectstart, or keydown events, paired with CSS user-select: none. These are client-side scripts running in your browser — they can be overridden.
Can I copy text from a paywalled article? If the full text is in the DOM (soft paywalls), the DevTools Elements method will expose it. If the content only loads after payment, removing the restriction won't help because the content isn't there.
Does printing to PDF let me copy text? Yes. Chrome's print-to-PDF renders the page independently of its JavaScript, so the resulting PDF has no copy restrictions attached.
What's the fastest method for regular use? A browser extension that removes copy restrictions — it runs passively on every page without any intervention from you.
Does Ctrl+A select all text on blocked pages?
Not always. On pages with CSS user-select: none, Ctrl+A won't initiate a visual selection. After running the DevTools console script or installing an extension, it works normally.