Metadata and third-party exposure in online file converters
Last updated August 2026
A measurement study of 11 services. Morphjet, August 2026.
Abstract
Online file converters are among the most widely used utilities on the web, and their handling of embedded image metadata is undocumented. We constructed a single photograph carrying GPS coordinates, a camera body serial number and an owner name, and submitted it to 11 converters under default settings. 6 of 11 returned the file with all identifying fields intact; 5 removed them. No service disclosed its behaviour at any point in the flow. A local control establishes that retention is the default behaviour of the underlying software, so removal represents a deliberate engineering decision and retention represents its absence. We further find that conversion to PDF relocates the full metadata payload into the embedded image stream, where standard inspection tools do not report it, producing a file that appears clean while remaining fully identifying. Third-party contact was measured at the download step rather than the landing page and ranged from 0 to 46 organisations. A second vantage point in Germany shows that geographic variation is confined to a minority of services, and that one service set 188 third-party cookies before any consent interaction while a comparable competitor set none. We measured our own product on the same terms and report the result in Section 3.1.
1. Conflict of interest
This study was produced by Morphjet, which sells a file converter that runs locally. Every service measured is a direct competitor. This is stated first, rather than in a closing note, because it is the most important thing a reader needs in order to weigh what follows.
Two mitigations are offered in place of trust. The complete method, specimen, raw outputs and measurement scripts are published, so any claim here can be independently reproduced or refuted. And favourable results for competitors are reported by name in Section 8, including results that are better than our own product's on the axis in question.
2. Method
2.1 Specimen construction
A single 1600 by 1200 pixel JPEG was generated for the study, so that no third-party rights attach to the published corpus. It was written with a complete EXIF payload using ExifTool 13.55:
| Field | Value | Why included |
|---|---|---|
| GPS latitude, longitude | 48.858370 N, 2.294481 E | Resolves to the Eiffel Tower. A public landmark was chosen deliberately so the demonstration is publishable without exposing a residence. |
| SerialNumber | MJ-BODY-4417-2026 | The camera body serial. Least known of the identifying fields, and the one that links every frame from a given camera. |
| OwnerName | Morphjet Study Rig | Written by several manufacturers and rarely inspected by users. |
| DateTimeOriginal | 2026:08:15 11:24:07 +02:00 | Temporal correlation. |
| Make, Model, LensModel | Canon, Canon EOS R5, RF24-70mm | Equipment fingerprint. |
| UserComment | MJ-STUDY-2026-08-15-A1 | Unique marker enabling byte-level provenance checks on every output. |
A HEIC variant carrying an identical payload was also prepared for future work and is included in the published corpus. It was not used in the conversions reported here.
2.2 Service selection
The sample frame was Morphjet's existing competitor catalogue, which contains 19 services. Eight of these run locally and never upload, and are therefore out of scope by definition. One entry is a generic category placeholder rather than a company. The remaining 11 uploading services were all measured. Because the frame was enumerated in full, there is no selection step and therefore no opportunity for selective inclusion.
Prior to any conversion, the terms of service and robots.txt of all 11 were read and classified. The results of that pass are summarised in Section 7.
2.3 Instrumentation
Conversions were performed in Google Chrome 151 driven through the Chrome DevTools Protocol, using a separate isolated browser context per service so that no service's cookies could influence another's measurement. Outputs were retrieved within the originating browser session and inspected locally with ExifTool 13.55, ImageMagick, and a byte-level scan for the marker string.
Third-party contact in Sections 5 and 6 was recorded by two different instruments, and the distinction matters for interpretation:
- Instrument A, the browser Resource Timing API, observes the main document frame only and does not see requests issued inside cross-origin advertising frames. Used for Table 6.
- Instrument B, request interception in Playwright, observes every frame. Used for Table 7.
Instrument B reports systematically higher counts than Instrument A on the same page. Figures from the two are not comparable and are never mixed within a table. Section 6.1 documents a false result that this distinction produced during the study.
2.4 Procedure
Each service was exercised once, on 15 August 2026, on default settings, with no options altered. Image converters were driven on the jpg to png route; PDF tools were driven on the jpg to pdf route, that being the equivalent operation those products offer. Where a service presented a metadata or quality option, it was left untouched, since the object of study is what an ordinary user receives.
2.5 Controls
Identical conversions were performed locally to establish the baseline behaviour of the underlying conversion libraries. This control is what makes the results interpretable, and it is reported first.
3. Control results
Local conversion retains every field on both routes.
| Conversion | GPS | Serial | Owner | Payload location |
|---|---|---|---|---|
| jpg to png | retained | retained | retained | directly readable |
| heic to jpg | retained | retained | retained | directly readable |
| jpg to pdf | retained | retained | retained | embedded image stream |
Finding 1. Metadata retention is the default behaviour of the conversion software, not a choice. A service that returns identifying fields has not leaked them; it has declined to intervene. A service that removes them has implemented something deliberately. The meaningful axis is therefore intervention versus its absence.
3.1 We measured our own product on the same terms
The control above is the raw conversion libraries. Morphjet is built on those libraries, so it is a fair question whether it behaves like them. We ran the identical specimen through Morphjet 1.0.0 against its production converter packs, default settings, no options set.
| Conversion | Libraries alone | Morphjet 1.0.0 |
|---|---|---|
| jpg to png | all fields retained | all fields removed |
| jpg to pdf | retained, hidden in embedded image | all fields removed |
A byte-level scan of both Morphjet outputs finds no occurrence of the serial number, the owner name or the marker string. On the PDF route it also removes the payload from the embedded image, which is the case described in Section 4.2 that defeats an ordinary metadata check.
We report this because it is measured on the same terms as everything else, and because omitting it would have been the more flattering choice only if the result had gone the other way. Stripping is the default in Morphjet, and a toggle opts back into carrying metadata through. Readers who distrust a vendor measuring itself should note that the specimen and the method are published, and that this particular claim is the easiest one in the paper to falsify.
4. Metadata results
| Service | Route | Output | Bytes | Identifying fields |
|---|---|---|---|---|
| CloudConvert | jpg to png | 8-bit RGB | 210,729 | retained |
| AnyConv | jpg to png | 8-bit RGB | 204,409 | retained |
| Convertio | jpg to png | 8-bit RGB | 204,708 | retained |
| Aconvert | jpg to png | 8-bit RGB | 204,683 | retained |
| Online-Convert | jpg to png | 8-bit palette | 70,973 | retained |
| FreeConvert | jpg to png | 8-bit palette | 73,113 | removed |
| Zamzar | jpg to png | 8-bit RGB | 198,147 | removed |
| PDF24 | jpg to pdf | PDF 1.6 | 138,820 | retained, in embedded image |
| Smallpdf | jpg to pdf | PDF 1.4 | 137,829 | removed |
| iLovePDF | jpg to pdf | PDF 1.7, resampled | 25,956 | removed |
| Sejda | jpg to pdf | PDF 1.5 | 71,963 | removed |
6 services returned the specimen with GPS, camera body serial and owner name intact. 5 removed them. No service disclosed which it would do, at any point before, during or after the conversion.
4.1 Removal is not a by-product of re-encoding
The obvious alternative explanation is that metadata loss is incidental to image re-encoding rather than intentional. Two results, arriving from opposite directions, exclude this:
- Online-Convert returns an 8-bit palettised image at 70,973 bytes, a heavier reduction than FreeConvert's 73,113 bytes, and retains every field. Compression does not remove metadata.
- Zamzar removes every field while returning full-quality 8-bit RGB at 198,147 bytes, with no reduction in fidelity. Removal does not require compression.
Finding 2. Metadata removal is an implemented behaviour, independent of the encoding pipeline. It follows that retention is equally a position, not an oversight.
4.2 The document container result
Conversion to PDF produced the study's least expected result. The local control PDF reports no camera-related fields whatsoever under standard inspection. A byte-level scan of the same file locates the marker string, the serial number and the owner name. Extracting the embedded image stream and inspecting it directly returns the complete original payload, GPS included.
| Source | Embedded stream | Tags on stream | Outcome |
|---|---|---|---|
| Local control | 1 JPEG, 136,335 B | 55 | full payload present |
| PDF24 | 1 JPEG, 137,842 B | 55 | full payload present |
| Smallpdf | 1 JPEG, 136,920 B | 19 | metadata removed, image unchanged |
| iLovePDF | none, resampled to 1240x930 | n/a | metadata absent after resampling |
| Sejda | none, recompressed | n/a | metadata absent after recompression |
Finding 3. Conversion of a photograph to PDF does not remove its metadata. It relocates the payload into the embedded image stream, where the standard inspection path does not report it. A user who converts a photograph and then verifies the result with a metadata tool will be told the file is clean while it remains fully identifying. This is a property of the container format rather than a defect in any product, which makes it more consequential rather than less.
Smallpdf warrants specific attribution here. Its embedded stream is 136,920 bytes against the control's 136,335, meaning the image was passed through at essentially its original encoding, with the metadata removed from it. That is an implemented privacy step, isolable from any other transformation. iLovePDF and Sejda produce the same outcome but also re-encode the pixel data, so intent cannot be separated from side effect by external observation, and we do not attribute one.
5. Third-party exposure
Measurement was taken at the download step, after a real conversion, rather than on the landing page. This choice is material: it is the point at which the user has surrendered a file and is stationary, and it is where exposure concentrates. iLovePDF contacts 2 organisations on its homepage and 10 at the download step.
| Service | Landing | Download | Organisations | Advertising |
|---|---|---|---|---|
| CloudConvert | 0 | 0 | 0 | 0 |
| Sejda | 0 | 0 | 0 | 0 |
| Zamzar | 8 | 7 | 5 | 3 |
| Aconvert | 8 | 8 | 6 | 4 |
| iLovePDF | 2 | 10 | 7 | 5 |
| PDF24 | 9 | 11 | 6 | 4 |
| Convertio | 6 | 11 | 8 | 5 |
| Online-Convert | 5 | 14 | 7 | 5 |
| Smallpdf | 12 | 16 | 12 | 7 |
| FreeConvert | 70 | 73 | 45 | not resolved |
| AnyConv | 70 | 73 | 46 | 37 |
5.1 Contacted is not the same as shared with
Convertio's download page contacts 8 organisations under Instrument A. Its own consent dialog states that user data may be stored by, accessed by and shared with 193 partners.
Both figures are accurate. The page loads a consent management platform rather than 193 discrete scripts, and the sharing relationship is mediated through it, so the partners never appear in a network log. Equivalent dialogs were observed on FreeConvert declaring 216 partners, AnyConv 214, and Aconvert 210.
Finding 4. Counting network endpoints measures infrastructure, not data-sharing policy, and can understate declared sharing by more than an order of magnitude. Studies reporting only endpoint counts, including the counts in Table 6 of this paper, are incomplete on their own and should be read alongside operator disclosures.
5.2 Session recording
Two services load tools that record pointer movement, click and scroll behaviour. Smallpdf loads both Microsoft Clarity and Hotjar at the download step; Hotjar is absent from its landing page and appears only after a file has been uploaded. FreeConvert loads Microsoft Clarity. We report these separately from advertising endpoints because behavioural recording on a page where a document has just been submitted is a distinct category of exposure, and aggregating it into a count obscures that.
5.3 The two dimensions are not correlated
Performance on file metadata does not predict performance on third-party exposure. Smallpdf implements the study's cleanest metadata removal and runs two session recorders. PDF24 retains the payload in hidden form and serves self-hosted analytics with a user-invoked immediate deletion control. CloudConvert retains the payload and contacts nobody. FreeConvert removes the payload and contacts 45 organisations.
Finding 5. Of 11 services, exactly one, Sejda, performs well on both dimensions, and one, AnyConv, performs poorly on both. The remaining nine are good on one and poor on the other. A composite privacy score would misrepresent nine of eleven services and should not be constructed from this data.
6. Geographic variation
The measurement was repeated from a virtual machine in Frankfurt am Main, Germany, using an identical script, identical browser build and identical locale handling, with consent never accepted. The pre-consent state is the only state comparable to the first vantage point, where no consent interface appears.
6.1 An instrument artefact, reported in full
Comparing the German run against the earlier figures produced by Instrument A indicated that FreeConvert's third-party contact rose from 70 to 169 hosts for European visitors. That is a substantial and newsworthy claim.
It is false. Re-running the first vantage point with the identical Instrument B script returns 210 hosts. FreeConvert's contact falls by 20% for European visitors. The apparent increase was entirely an artefact of comparing two instruments with different visibility into advertising frames.
Finding 6. Cross-condition comparisons require a single instrument. We report this because the erroneous version of the result was more interesting than the correct one, which is precisely the circumstance under which measurement artefacts are published.
6.2 Results
| Service | India | Germany | Change | Cookies | 3rd-party | Gate |
|---|---|---|---|---|---|---|
| FreeConvert | 210 | 169 | 20% lower | 203 | 188 | present |
| AnyConv | 206 | 17 | 92% lower | 7 | 0 | present |
| Smallpdf | 14 | 14 | no change | 12 | 8 | present |
| PDF24 | 13 | 14 | 8% higher | 12 | 5 | absent |
| Aconvert | 10 | 4 | 60% lower | 1 | 0 | present |
| Zamzar | 8 | 7 | 13% lower | 5 | 0 | present |
| Convertio | 6 | 7 | 17% higher | 7 | 0 | absent |
| Online-Convert | 6 | 6 | no change | 8 | 0 | absent |
| iLovePDF | 2 | 2 | no change | 1 | 0 | present |
| CloudConvert | 0 | 0 | no change | 0 | 0 | present |
| Sejda | 0 | 0 | no change | 3 | 0 | absent |
Seven of eleven services vary by at most one host across the two vantage points. For those, location makes no measurable difference.
Two vary substantially, and the pairing is the finding. AnyConv falls from 206 hosts to 17, a 92% reduction, and sets no third-party cookies before consent. FreeConvert, operating a comparable advertising business, sets 203 cookies before any consent interaction, 188 of them belonging to other organisations, behind a dialog naming 216 partners.
Finding 7. Two structurally similar services, measured on the same day with the same script from the same host, differ by two orders of magnitude in pre-consent third-party cookie placement. Technical necessity is therefore not available as an explanation for the higher figure. We report this as an observation and make no legal determination.
6.3 Consent interfaces are weak predictors
PDF24, Convertio, Online-Convert and Sejda presented no consent interface in Germany. PDF24 nonetheless set 5 third-party cookies. CloudConvert presented an interface and loaded nothing at either vantage point. The presence or absence of a consent banner carries little information about a service's actual behaviour, in either direction.
7. Stated policy against observed behaviour
| Service | Stated in terms | Shown in product | Assessment |
|---|---|---|---|
| AnyConv | 1 hour | not shown | n/a |
| PDF24 | 1 hour | not shown | n/a |
| iLovePDF | 2 hours | not shown | n/a |
| Aconvert | 2 hours | 1 to 2 hours | inconsistent |
| FreeConvert | 8 hours | 8 hours | consistent |
| Convertio | does not store files | 24 hours | contradicts |
| Zamzar | no period stated | 24 hours | undisclosed |
| Online-Convert | unspecified period | not shown | undisclosed |
| CloudConvert | no period stated | not shown | undisclosed |
| Smallpdf | no period stated | not shown | undisclosed |
| Sejda | no period stated | not shown | undisclosed |
Convertio's terms of use state that it does not store or back up user files. Its download page states that files are stored for 24 hours, and it maintains a persistent file list in the interface. Zamzar's terms reserve the right to set a retention period without naming one, while the product states 24 hours. Aconvert publishes three different figures across its own pages and, as of measurement, served no terms of service at all: its terms URL returns an HTTP 200 response carrying a not-found page.
Five of eleven services state no retention period anywhere. FreeConvert is the only service whose stated period matches what its product displays.
8. Results favourable to measured services
Reported by name, because a study in which every competitor performs badly is an advertisement.
- CloudConvert contacted zero third-party organisations at both the landing page and the download step, at both vantage points, and serves first-party analytics.
- Sejda is the only service performing well on both dimensions: metadata removed, zero third-party contact.
- Smallpdf implements the study's most clearly isolable metadata removal, leaving the image encoding otherwise untouched.
- PDF24 provides a user-invoked control that erases job files from its servers immediately, and self-hosts its analytics.
- AnyConv withholds its advertising stack from European visitors prior to consent, which most of its peers do not.
- FreeConvert is the only service whose stated retention period matches its product exactly.
9. Threats to validity
9.1 Construct validity
Motive is not observable. We measure what a service returned, not why. Where metadata absence coincides with re-encoding, we explicitly decline to attribute intent. Endpoint counts measure infrastructure and understate declared sharing, as established in Section 5.1.
9.2 Internal validity
Advertising stacks are auction-driven and vary between page loads. The high-count services in particular will not reproduce exactly. A single pass per service means transient failures cannot be distinguished from stable behaviour. Instrument A does not observe cross-origin advertising frames and its Table 6 figures are therefore lower bounds.
9.3 External validity
One specimen, one route per service, one day. Results do not generalise to other formats, larger files, paid tiers or authenticated sessions. Two vantage points are two, not a sample of the world. The German run covers landing pages only and never accepted consent, so it describes nothing about the post-consent state, which is likely less favourable everywhere.
9.4 Scope
Default settings only. Several services may expose metadata controls that were not exercised, and their existence is itself a question this study does not answer. Retention claims in Table 8 are compared against product statements, not tested against actual server behaviour, which would require a disclosure process this study did not undertake. Nothing here constitutes a legal determination.
10. Reproducibility
Everything needed to check or repeat this work is published here. Software versions were ExifTool 13.55, Chrome 151, and Playwright Chromium on Ubuntu 24.04. The German host was destroyed after the run.
- dataset.json and dataset.csv, every figure in Tables 4, 6 and 8, with method and limitations attached.
- specimen.jpg, the exact photograph submitted, with its EXIF payload intact. Inspect it and you will find the coordinates and the serial number described in Table 1.
- eu-measure.py and in-measure.py, the two vantage-point scripts. They differ only in locale and timezone, which is what makes Table 7 a like-for-like comparison.
- eu-results.json and in-results.json, the raw output of those runs, including per-host request counts we did not summarise here.
- build-dataset.py, which assembles the published dataset from the measurements.
The terms of service and robots.txt corpus as retrieved, and the converted files returned by each service, are held alongside these and available on request. We have not republished the returned files directly, since several are near-identical copies of a photograph that is already published above.
If a replication produces different results, we would like to hear about it. Conversion services change without notice, and every figure here is a snapshot of 15 August 2026.
11. Conclusion
A photograph submitted to an online converter has roughly even odds of being returned with its GPS coordinates, camera serial number and owner name intact. Which outcome a user receives is not disclosed by any service measured, is not predictable from the service's reputation or size, and is not correlated with how that service treats the user in other respects. Converting to PDF, the intuitive mitigation, defeats the verification step most users would perform.
Morphjet converts files on the user's own machine, so the question this paper asks does not arise for it. That is a structural consequence of where the computation happens rather than a claim about our conduct, and it is the reason we were able to run this study without measuring ourselves.