0Pricing
Web Performance Optimization & Lighthouse · Lektion

Eigene Audits und Assertions

Entwickeln Sie eigene Lighthouse-Audits, um für Ihr Projekt relevante Regeln zu Performance oder Best Practices durchzusetzen.

Eigene Audits und Assertions ist eine kostenlose Web Performance Optimization & Lighthouse-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Web Performance Optimization & Lighthouse-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Web Performance Optimization & Lighthouse-Kurs umfasst insgesamt 4 Lektionen.

Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.

Extend Lighthouse's Power

Welcome to creating custom Lighthouse audits! While Lighthouse offers many built-in checks, sometimes you need to enforce project-specific rules or validate unique performance requirements.

This lesson shows you how to build your own.

Why Create Custom Audits?

Custom audits allow you to tailor Lighthouse to your exact needs. They help you:

  • Enforce Standards: Check for specific coding patterns or component usage.
  • Validate Unique Metrics: Measure performance aspects not covered by default.
  • Ensure Compliance: Verify project-specific accessibility or SEO rules.
  • Automate Checks: Integrate tailored performance feedback directly into your development workflow.

Audit Anatomy: Gatherers & Audits

A custom Lighthouse audit typically has two main parts:

  • Gatherer: This component collects raw data about the page. It runs inside the browser and extracts specific information, like DOM elements, network requests, or JavaScript variables.
  • Audit: This component analyzes the data collected by the gatherer. It applies logic to determine a score, a pass/fail state, and provides recommendations.

Both are then linked in a Lighthouse configuration file.

Building a Gatherer: Data Collection

A gatherer is responsible for collecting data. It extends Lighthouse.Gatherer and uses methods like afterPass to run JavaScript in the page's context.

Let's create a gatherer that checks for a specific <meta> tag.

Gatherer Code Example

This gatherer looks for an <meta name="author"> tag and returns its content. If not found, it returns null.

// gatherers/author-meta-gatherer.js
'use strict';
const Gatherer = require('lighthouse').Gatherer;

class AuthorMetaGatherer extends Gatherer {
  afterPass(options) {
    const driver = options.driver;
    // Evaluate JS in the browser context
    return driver.evaluateAsync(() => {
      const metaTag = document.querySelector('meta[name="author"]');
      return metaTag ? metaTag.content : null;
    });
  }
}

module.exports = AuthorMetaGatherer;

Building an Audit: Evaluation Logic

An audit takes the data provided by gatherers and applies your custom logic. It extends Lighthouse.Audit and implements a static audit method.

This method receives the collected "artifacts" (data) and determines the audit's result.

Audit Code Example

This audit uses the data from our AuthorMetaGatherer to check if the author meta tag is present and has content. It scores 1 (pass) or 0 (fail).

// audits/author-meta-audit.js
'use strict';
const Audit = require('lighthouse').Audit;

class AuthorMetaAudit extends Audit {
  static get meta() {
    return {
      id: 'author-meta-tag',
      title: 'Author meta tag is present',
      failureTitle: 'Author meta tag is missing or empty',
      description: 'Ensures an author meta tag is present for attribution.',
      requiredArtifacts: ['AuthorMetaGatherer'],
    };
  }

  static audit(artifacts) {
    const authorMetaContent = artifacts.AuthorMetaGatherer;
    const passed = !!authorMetaContent && authorMetaContent.trim().length > 0;

    return {
      score: passed ? 1 : 0,
      details: {
        type: 'debuginfo',
        headings: [
          {key: 'content', itemType: 'text', text: 'Author Meta Content'},
        ],
        items: [{content: authorMetaContent || 'Not found'}],
      },
    };
  }
}

module.exports = AuthorMetaAudit;

Integrating into Lighthouse Config

To make Lighthouse aware of your custom gatherer and audit, you need a custom configuration file. This file tells Lighthouse which gatherers to run and which audits to include, often extending the default Lighthouse checks.

// custom-config.js
'use strict';

module.exports = {
  extends: 'lighthouse:default', // Inherit default audits
  gatherers: [
    './gatherers/author-meta-gatherer.js',
  ],
  audits: [
    './audits/author-meta-audit.js',
  ],
  categories: {
    'custom-category': {
      title: 'Custom Checks',
      description: 'Project-specific performance and best practice audits.',
      auditRefs: [
        {id: 'author-meta-tag', weight: 1, group: 'metrics'},
      ],
    },
  },
};

Running Lighthouse with Custom Audits

Finally, you can run Lighthouse programmatically using Node.js, referencing your custom configuration file. This script launches Chrome, runs Lighthouse, and generates a report.

Make sure you have lighthouse and chrome-launcher installed via npm.

// run-custom-audit.js
const lighthouse = require('lighthouse');
const chromeLauncher = require('chrome-launcher');

(async () => {
  const chrome = await chromeLauncher.launch({chromeFlags: ['--headless']});
  const options = {
    logLevel: 'info',
    output: 'html',
    onlyCategories: ['custom-category'], // Run ONLY our custom category
    port: chrome.port
  };
  const config = require('./custom-config.js'); // Load your custom config

  const runnerResult = await lighthouse('https://example.com', options, config);

  console.log('Report is done for', runnerResult.lhr.requestedUrl);
  // Accessing your custom audit score:
  const customAuditScore = runnerResult.lhr.audits['author-meta-tag'].score;
  console.log('Author Meta Tag Audit Score:', customAuditScore);

  await chrome.kill();
})();

Custom Audit Components

You've learned about the key pieces needed to build a custom Lighthouse audit.

Which of the following are essential components when creating a custom Lighthouse audit?

Recap: Your Custom Audit Toolkit

You've successfully learned how to extend Lighthouse's capabilities!

By understanding gatherers, audits, and custom configurations, you can now build powerful, project-specific checks. This allows you to enforce unique best practices and gain deeper, tailored insights into your web performance.

Häufig gestellte Fragen

Ist die Lektion „Eigene Audits und Assertions“ kostenlos?

Ja — der vollständige Text von „Eigene Audits und Assertions“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Web Performance Optimization & Lighthouse-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Web Performance Optimization & Lighthouse-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Eigene Audits und Assertions“?

Entwickeln Sie eigene Lighthouse-Audits, um für Ihr Projekt relevante Regeln zu Performance oder Best Practices durchzusetzen. Du übst Web Performance Optimization & Lighthouse mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Web Performance Optimization & Lighthouse zu starten?

Keine Vorkenntnisse erforderlich. Web Performance Optimization & Lighthouse auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „Eigene Audits und Assertions“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Web Performance Optimization & Lighthouse-Lektion Code schreiben und ausführen?

Ja. Jede Web Performance Optimization & Lighthouse-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Lighthouse über CLI und programmatisch verwenden
  2. Eigene Audits und Assertions
  3. Lighthouse in CI/CD integrieren
  4. Performance-Budgets mit Lighthouse
← Zurück zu Web Performance Optimization & Lighthouse