--- title: Coveo indexing pipeline extensions slug: '3094' canonical_url: https://docs.coveo.com/en/3094/ collection: coveo-for-sitecore-v5 source_format: adoc --- # Coveo indexing pipeline extensions :figure-caption!: Items crawled in Sitecore are then sent to the [Coveo Platform](https://docs.coveo.com/en/186/) [document processing manager (DPM)](https://docs.coveo.com/en/191/) to be processed and indexed. The [document processing manager (DPM)](https://docs.coveo.com/en/191/) provides two [indexing pipeline extension (IPE)](https://docs.coveo.com/en/206/) stages during which you can modify your items, using Python code, before they're indexed. The [choice of stage](#choosing-between-a-pre-conversion-and-a-post-conversion-extension) depends on your use case. **Simplified view of the indexing process. The light-purple stages are the extensions you can leverage to customize the process.** ![The Coveo indexing pipeline](https://docs.coveo.com/en/assets/images/c4sc-v5/simplified-indexing-pipeline-stages.png) > **Note** > > Don't use indexing pipeline extensions for tasks that the connector itself is designed to handle. > For example, when using the [Web](https://docs.coveo.com/en/malf0160/) or [Sitemap](https://docs.coveo.com/en/1967/) connector, you shouldn't use an IPE to remove unwanted sections of web pages. > These connectors support [web scraping](https://docs.coveo.com/en/2767/) configurations for that very purpose. ## Choosing between a pre-conversion and a post-conversion extension An important stage of the [Coveo indexing pipeline](https://docs.coveo.com/en/184/) is the [Processing](https://docs.coveo.com/en/1893#processing) stage. During this stage, incoming items are converted to an index-ready format. Coveo provides indexing pipeline extension stages prior to this conversion stage and after it. **Examples of use cases for pre-conversion extensions**: * Rejecting a web page using advanced rules. * Formatting values. **Examples of use cases for post-conversion extensions**: * Modifying the body of a page. * Adding or modifying metadata. If you're unsure about the stage to choose, see our [decision table](https://docs.coveo.com/en/1556#pre-conversion-versus-post-conversion). Once you've chosen the appropriate stage, you can [create your indexing pipeline extension](https://docs.coveo.com/en/1645#add-an-indexing-pipeline-extension). ## Example: Removing unwanted HTML sections Using the [CleanHtml](https://docs.coveo.com/en/2326#cleanhtml) Coveo for Sitecore processor is a simple way to remove webpage content that you don't want to index. However, it may require that you add exclusion tags in many layouts that your Sitecore items are linked to. An alternative is to use an [indexing pipeline extension](https://docs.coveo.com/en/1556/), which leverages the powerful and full-featured [BeautifulSoup library](https://www.crummy.com/software/BeautifulSoup/). This example shows how to create an indexing pipeline extension that removes the following from your webpages: - tags whose `class` attribute value is `coveo-no-index` - `