<ownershipDocument>
    <schemaVersion>X0201</schemaVersion>

    <documentType>4</documentType>
<periodOfReport>2003-12-11</periodOfReport>
<notSubjectToSection16>0</notSubjectToSection16>
    <issuer>
        <issuerCik>0000031462</issuerCik>
        <issuerName>ECOLAB INC</issuerName>
        <issuerTradingSymbol>ECL</issuerTradingSymbol>
</issuer>
<reportingOwner>
        <reportingOwnerId>
            <rptOwnerCik>0001198773</rptOwnerCik>
            <rptOwnerName>SPOONER JOHN P</rptOwnerName>
        </reportingOwnerId>
        <reportingOwnerAddress>
            <rptOwnerStreet1>ECOLAB INC.</rptOwnerStreet1>
            <rptOwnerStreet2>370 WABASHA STREET N.</rptOwnerStreet2>
            <rptOwnerCity>ST. PAUL</rptOwnerCity>
            <rptOwnerState>MN</rptOwnerState>
            <rptOwnerZipCode>55102</rptOwnerZipCode>
            <rptOwnerStateDescription></rptOwnerStateDescription>
        </reportingOwnerAddress>
            <reportingOwnerRelationship>
<isDirector>0</isDirector>
<isOfficer>1</isOfficer>
<isTenPercentOwner>0</isTenPercentOwner>
<isOther>0</isOther>
<officerTitle>President of International</officerTitle>
<otherText></otherText>
</reportingOwnerRelationship>
</reportingOwner>
<nonDerivativeTable><nonDerivativeTransaction><securityTitle><value>Common Stock</value>
</securityTitle>
<transactionDate><value>2003-10-27</value>
</transactionDate>
<transactionCoding><transactionFormType>5</transactionFormType>
<transactionCode>G</transactionCode>
<equitySwapInvolved>0</equitySwapInvolved>
</transactionCoding>
<transactionTimeliness><value>E</value>
</transactionTimeliness>
<transactionAmounts><transactionShares><value>500</value>
</transactionShares>
<transactionPricePerShare><value>0.00</value>
</transactionPricePerShare>
<transactionAcquiredDisposedCode><value>D</value>
</transactionAcquiredDisposedCode>
</transactionAmounts>
<postTransactionAmounts><sharesOwnedFollowingTransaction><value>39941</value>
</sharesOwnedFollowingTransaction>
</postTransactionAmounts>
<ownershipNature><directOrIndirectOwnership><value>D</value>
</directOrIndirectOwnership>
</ownershipNature>
</nonDerivativeTransaction>
<nonDerivativeTransaction><securityTitle><value>Common Stock</value>
</securityTitle>
<transactionDate><value>2003-10-27</value>
</transactionDate>
<transactionCoding><transactionFormType>5</transactionFormType>
<transactionCode>G</transactionCode>
<equitySwapInvolved>0</equitySwapInvolved>
</transactionCoding>
<transactionTimeliness><value>E</value>
</transactionTimeliness>
<transactionAmounts><transactionShares><value>500</value>
</transactionShares>
<transactionPricePerShare><value>0.00</value>
</transactionPricePerShare>
<transactionAcquiredDisposedCode><value>D</value>
</transactionAcquiredDisposedCode>
</transactionAmounts>
<postTransactionAmounts><sharesOwnedFollowingTransaction><value>39441</value>
</sharesOwnedFollowingTransaction>
</postTransactionAmounts>
<ownershipNature><directOrIndirectOwnership><value>D</value>
</directOrIndirectOwnership>
</ownershipNature>
</nonDerivativeTransaction>
<nonDerivativeHolding><securityTitle><value>Common Stock</value>
</securityTitle>
<postTransactionAmounts><sharesOwnedFollowingTransaction><value>2462.928</value>
<footnoteId id="F1"></footnoteId>
</sharesOwnedFollowingTransaction>
</postTransactionAmounts>
<ownershipNature><directOrIndirectOwnership><value>I</value>
</directOrIndirectOwnership>
<natureOfOwnership><value>By Ecolab Savings Plan</value>
</natureOfOwnership>
</ownershipNature>
</nonDerivativeHolding>
</nonDerivativeTable>
<derivativeTable><derivativeTransaction><securityTitle><value>Employee Stock Option (Right to Buy)</value>
</securityTitle>
<conversionOrExercisePrice><value>27.39</value>
</conversionOrExercisePrice>
<transactionDate><value>2003-12-11</value>
</transactionDate>
<transactionCoding><transactionFormType>4</transactionFormType>
<transactionCode>A</transactionCode>
<equitySwapInvolved>0</equitySwapInvolved>
</transactionCoding>
<transactionAmounts><transactionShares><value>100000</value>
</transactionShares>
<transactionPricePerShare><value>0.00</value>
</transactionPricePerShare>
<transactionAcquiredDisposedCode><value>A</value>
</transactionAcquiredDisposedCode>
</transactionAmounts>
<exerciseDate><footnoteId id="F2"></footnoteId>
</exerciseDate>
<expirationDate><value>2013-12-11</value>
</expirationDate>
<underlyingSecurity><underlyingSecurityTitle><value>Common Stock</value>
</underlyingSecurityTitle>
<underlyingSecurityShares><value>100000</value>
</underlyingSecurityShares>
</underlyingSecurity>
<postTransactionAmounts><sharesOwnedFollowingTransaction><value>100000</value>
</sharesOwnedFollowingTransaction>
</postTransactionAmounts>
<ownershipNature><directOrIndirectOwnership><value>D</value>
</directOrIndirectOwnership>
</ownershipNature>
</derivativeTransaction>
</derivativeTable>
<footnotes><footnote id="F1">Number of UNITS in the Ecolab Stock Fund of the Ecolab Savings Plan (401(k) Plan) as of November 30, 2003. Includes 6.361 UNITS acquired since the reporting person's last report. (The 2,462.928 UNITS are the equivalent of approximately 4,390.631 shares of the issuer's Common Stock.)</footnote>
<footnote id="F2">The option will be exercisable, on a cumulative basis, as to one-third of the option shares (excluding any fractitonal portion less than one share), on each of the first and second anniversaries of the date of grant and as to the remaining shares on the third anniversary of the date of grant; provided, however, that if a Change in Control (as that term is defined in the 2002 Ecolab Inc. Stock Incentive Plan) will occur, then the option, if it has been outstanding for at least six months from the date of grant, will become immediately exercisable in full.</footnote>
</footnotes>
<ownerSignature><signatureName>/s/David F. Duvick, Attorney-in-Fact for John P. Spooner</signatureName>
<signatureDate>2003-12-15</signatureDate>
</ownerSignature>
</ownershipDocument>

