---
title: "Print Stylesheet Checker — Free @media print Audit"
description: "Free print stylesheet checker. Detect @media print rules and print-specific stylesheets. Ensure professional output when users print or save your pages as…"
canonical: "https://lemwatch.com/tools/print-stylesheet-checker"
source: "https://lemwatch.com"
---

# Print Stylesheet Checker

> Check if a page has print-specific CSS. Missing print styles mean broken layouts, wasted ink, and unprofessional output when users print or save as PDF.

Printing a webpage in 2026 should produce a clean, readable document. For 90% of websites, it doesn't — because nobody thought about print CSS. This tool checks whether yours did.

 ## Why print styles matter when "no one prints anymore"

 Except they do. Quietly, constantly. Receipts. Invoices. Recipes. Boarding passes. Legal terms. Insurance policies. PDF-as-print exports. Conference schedules. Documentation. Email-printed-to-PDF. Save-as-PDF in the browser is technically a print operation and uses your print stylesheet.

 Browser "Save as PDF" is the #1 reason print CSS matters in 2026. Users save articles, save invoices, save legal terms, all the time — and the resulting PDF is whatever your print CSS makes it.

 ## What a missing print stylesheet looks like

 - Navigation bar and footer rendered as full-width sticky blocks taking up a third of every page
- Sidebar widgets rendering across the print, breaking column flow
- Dark-mode background printed as solid black, wasting an entire ink cartridge
- Ads rendered in print
- "Sticky CTA" rendered on every printed page
- Collapsible sections still collapsed (so the printed content is incomplete)
- Text in 11px because the screen size is treated as the print size
- Multi-column responsive layouts breaking at paper-page boundaries

 ## What a good print stylesheet does

 ```css
@media print {
 nav, footer, .sidebar, .ads, .cookie-banner { display: none; }
 body { background: white; color: black; font-size: 12pt; }
 a::after { content: " (" attr(href) ")"; font-size: 10pt; }
 h1, h2, h3 { page-break-after: avoid; }
 img { max-width: 100%; page-break-inside: avoid; }
 .no-print { display: none; }
 details { display: block; }
 summary { font-weight: bold; }
}
```

 30 lines. That's the entire intervention. Most teams have never written it, so most sites print badly.

 ## What we detect

 We look at the static HTML for three signals:

 1. **`<link rel="stylesheet" media="print">`** — a dedicated print stylesheet (cleanest pattern, easiest to maintain)
2. **Inline `<style>` blocks containing `@media print {`** — print rules embedded in the main stylesheet (most common pattern)
3. **External CSS files that we can't inspect** — we report when no inline or linked print rules exist, knowing some sites may have print rules in an external file. False negatives are possible; we err on flagging absence so you can confirm.

 ## The B2B angle

 If you sell to enterprise — legal, finance, healthcare, government — printable output is part of your product. Invoices that print as one clean page (not three pages of header chrome) signal that you understand enterprise. Reports that PDF cleanly are screenshots in every sales deck. "Save as PDF" being clean is the cheapest enterprise-credibility upgrade in your stack.

 ## What this tool can't catch

 Print rules that live in external CSS files we haven't fetched. If we report "no print styles found" and you know you have a stylesheet at `/assets/print.css`, you're probably fine — but check the rendered output in Chrome DevTools to be sure.

## What this tool checks

- Whether the page has any @media print CSS rules
- Whether there's a dedicated print stylesheet (<link media="print">)
- The URLs of any external print stylesheets
- Whether inline <style> blocks include print rules
- Overall verdict: has_print_styles (true/false)

## Why it matters

 Most users never print web pages — until they do. Invoice pages, recipes, articles, documentation, legal terms, conference schedules, and B2B reports all get printed. Without print styles, users get the full navigation, sidebar, ads, dark mode background (eating ink), and broken multi-column layouts on paper. Adding 30 lines of @media print CSS turns a printed page from embarrassing into professional. For B2B/SaaS/legal sites, it's table stakes.

## How to fix what it finds

- Add a @media print { } block to your main stylesheet with: hide nav/footer/ads, force black text on white background, expand collapsed sections, page-break rules
- Test with Chrome DevTools > More tools > Rendering > "Emulate CSS media type" > print
- Force background colors with `print-color-adjust: exact;` if you genuinely need them (logos, charts)
- Use `page-break-after: avoid;` on headings to prevent orphan headings at page bottoms
- For invoices and reports, consider a dedicated /print/ URL with a print-only template — easier than fighting your responsive CSS

## Methodology

 We fetch the page HTML with a 10-second timeout and `SiteMonitorBot/1.0` user-agent. We scan for two patterns in the returned HTML: (1) `<link>` tags with `media="print"` (or `media="only print"`), capturing their `href` attributes; and (2) inline `<style>` blocks containing `@media print` rules. The verdict `has_print_styles` is true if either signal is found. We report counts of each signal type, the list of external print stylesheet URLs, and a boolean for inline `@media print` blocks. We do not fetch external stylesheets — a site could declare `<link rel="stylesheet" href="/main.css">` (no media attribute) and have `@media print` rules inside that external file; we will report "no print styles" in that case, which is technically a false negative. The check takes under 2 seconds. For definitive verification, use Chrome DevTools > Rendering > Emulate CSS media type > print after running this check.

## Frequently asked questions

### My print rules are in an external CSS file. Will this find them?

 Only if the <link> tag specifies media="print" OR if the inline <style> in your HTML contains @media print rules. We don't fetch external stylesheets, so rules inside a generic external CSS file may be missed.

### Why does my SPA show no print styles when I know I have them?

 Single-page apps inject styles at runtime via JS. We only see the static HTML, not the post-hydration styles. Verify with Chrome DevTools instead.

### Is "no print styles" actually a problem?

 Depends on use case. For consumer blogs, low impact. For invoices, legal docs, recipes, reports, documentation, B2B SaaS dashboards — it's a credibility hit when users print or save as PDF.

### What CSS rules matter most for print?

 Hide nav/footer/sidebar/ads (display:none), force black text on white (background:white;color:black), use page-break-* properties on headings and images, expand collapsed <details> elements.

### Should I use a separate print template instead of CSS?

 For complex documents (invoices, contracts, reports), yes — a dedicated /print/ URL with its own template is easier than fighting responsive CSS. For everything else, @media print is simpler.


## Related

- [All free tools](https://lemwatch.com/tools)
- [Mobile-Friendly Test](https://lemwatch.com/tools/mobile-friendly-checker)
- [core web vitals checker](https://lemwatch.com/tools/core-web-vitals-checker)
- [Lazy Loading Checker](https://lemwatch.com/tools/lazy-loading-checker)
- [Money Page Finder](https://lemwatch.com/tools/money-page-finder)
- [Free SEO Audit](https://lemwatch.com/tools/free-seo-audit)
- [Lemwatch pricing](https://lemwatch.com/pricing)
- [All monitoring checks](https://lemwatch.com/features)
